Function at 0x45c924
Capabilities:
Encode data using base64
Parse credit card information
Set environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x264
or dword [ebp - 0x68], 0xffffffff
or dword [ebp - 0x58], 0xffffffff
xor eax, eax
inc eax
push ebx
xor ebx, ebx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0xc], ecx
push esi
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x80], ebx
mov byte [ebp + 0x67], bl
mov byte [ebp + 0x4b], bl
mov byte [ebp + 7], bl
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp + 0x2c], str._I64d
mov dword [ebp + 0x14], eax
call fcn.004451da
lea eax, [ebp + 0x14]
push eax
call fcn.0043e7bd
mov eax, dword [ebp + 0x14]
pop ecx
jmp 0x45c9bb
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x14], eax
cmp word [eax], 0x26
je 0x45c9b3
lea ecx, [ebp - 0xb0]
call fcn.00444f6c
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x45c9df
cmp cx, 0x3d
je 0x45c9e7
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45c9d4
mov dword [ebp + 0x60], 0x4c1a3c
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x37], 0
je 0x45ca00
mov byte [ebp + 0x37], 1
jmp 0x45ca08
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x4c]
call fcn.0041101b
mov edx, dword [ebp + 0x4c]
cmp word [edx], 0x7e
pop ecx
jne 0x45ca58
inc edx
inc edx
mov ecx, edx
mov dword [ebp - 0x80], ecx
jmp 0x45ca2e
cmp ax, 0x7e
je 0x45ca39
inc edx
inc edx
mov dword [ebp + 0x4c], edx
mov ax, word [edx]
cmp ax, bx
jne 0x45ca26
cmp word [edx], 0x7e
je 0x45ca49
mov esi, 0x80070057
jmp 0x45ecb3
mov word [edx], bx
add dword [ebp + 0x4c], 2
cmp word [ecx], bx
jne 0x45ca58
mov dword [ebp - 0x80], ebx
mov esi, dword [ebp + 0x78]
fldz
cmp esi, ebx
fstp qword [ebp - 0x54]
push edi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x64], ebx
je 0x45d518
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x5c], ebx
xor edi, edi
mov di, word [esi]
cmp di, bx
je 0x45d518
mov eax, edi
call fcn.0043e785
test al, al
jne 0x45d518
cmp di, 0x2e
je 0x45d50d
cmp di, 0x24
je 0x45d50d
cmp di, 0x25
je 0x45d50d
cmp di, 0x2a
jne 0x45cabf
or byte [ebp + 0x67], 4
jmp 0x45d50d
push 0x7e
pop ecx
cmp di, cx
jne 0x45cb14
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x45cad8
or byte [ebp + 0x67], 2
jmp 0x45d50b
cmp di, cx
jne 0x45cb14
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45caef
or byte [ebp + 0x67], 8
jmp 0x45d50b
cmp di, cx
jne 0x45cb14
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x45cb06
or byte [ebp + 0x67], 0xa
jmp 0x45d50b
cmp di, cx
jne 0x45cb14
or byte [ebp + 0x67], 1
jmp 0x45d50d
cmp di, 0x3c
jne 0x45cb23
mov byte [ebp + 0x4b], 1
jmp 0x45d50d
cmp di, 0x3e
jne 0x45cb32
mov byte [ebp + 0x4b], 2
jmp 0x45d50d
push 4
push esi
push str._std
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cb58
add esi, 6
mov dword [ebp - 0xa4], 0x80
jmp 0x45d50d
push 4
push esi
push str._env
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cb7e
add esi, 6
mov dword [ebp - 0xa4], 0x40
jmp 0x45d50d
push 4
push esi
push str._raw
call fcn.0043fc19
add esp, 0xc
test al, al
jne 0x45cf43
push 4
push esi
push str._def
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cbb6
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x45d50d
push 4
push esi
push str._tom
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cbd9
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x45d50d
push 4
push esi
push str._tow
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cbfc
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x45d50d
push 5
push esi
push str._copy
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cc1f
add esi, 8
mov dword [ebp + 0x30], 4
jmp 0x45d50d
push 4
push esi
push str._cmp
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cc42
add esi, 8
mov dword [ebp + 0x30], 0x100
jmp 0x45d50d
push 5
push esi
push str._addr
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cc63
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x45d50d
push 0xb
push esi
push str._mkfixdummy
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cc86
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x45d50d
push 8
push esi
push str._mkdummy
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cca9
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x45d50d
push 5
push esi
push str._make
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cccc
add esi, 8
mov dword [ebp + 0x30], 0x80
jmp 0x45d50d
push 5
push esi
push str._swap
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45ccef
add esi, 8
mov dword [ebp + 0x30], 0x20
jmp 0x45d50d
push 5
push esi
push str._zero
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cd0e
add esi, 8
mov dword [ebp - 0x58], ebx
jmp 0x45d50d
push 4
push esi
push str._ret
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cd5f
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x24], 1
mov dword [ebp + 0x70], esi
jne 0x45cd3a
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00414b24
test al, al
je 0x45cd58
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00451e7f
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x45d50d
push 4
push esi
push str._get
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cd9c
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x70], esi
jne 0x45cd8b
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00414b24
test al, al
je 0x45cd58
lea eax, [ebp + 0x40]
jmp 0x45cd49
push 3
push esi
push 0x4caf30
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cdbc
add esi, 4
mov byte [ebp + 7], 1
jmp 0x45d50d
push 2
push esi
push 0x4caf2c
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cdeb
add esi, 4
mov dword [ebp + 0x70], esi
mov dword [ebp - 0x98], 1
lea eax, [ebp - 0x98]
jmp 0x45cd49
push 2
push esi
push 0x4caf28
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45ce72
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.0047cd87
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0047cd87
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x70], esi
call fcn.00451e7f
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00451e7f
add esp, 0x20
cmp dword [ebp - 0x84], ebx
jg 0x45ce57
mov dword [ebp - 0x84], 1
mov eax, dword [ebp - 0x1c]
sub eax, esi
mov esi, dword [ebp + 0x70]
inc eax
cmp word [esi], 0x5d
mov dword [ebp - 0x68], eax
je 0x45d50d
jmp 0x45cd58
cmp di, 0x2d
jne 0x45d107
inc esi
push 1
inc esi
push esi
push 0x4c6330
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cf23
inc esi
inc esi
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
push 0x2a
pop edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov edx, esi
je 0x45ced0
mov eax, ecx
call fcn.0043e785
test al, al
jne 0x45cec8
cmp cx, 0x3a
je 0x45cec8
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45cead
cmp word [esi], bx
je 0x45ced0
mov word [esi], bx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x94]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xbc], ebx
push eax
call fcn.00452224
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45d56f
mov esi, dword [ebp - 0xbc]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45cf15
mov esi, 0x4caf20
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45cf23
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cf4b
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], ebx
add esi, 6
jmp 0x45d50d
push 5
push esi
push str.wchar
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cf71
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], ebx
add esi, 8
jmp 0x45d50d
push 5
push esi
push str.short
call fcn.0043fc19
add esp, 0xc
test al, al
jne 0x45cf5f
push 3
push esi
push 0x4ca480
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cfa6
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, edi
jmp 0x45d50d
push 6
push esi
push str.intptr
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cfc8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, 0xa
jmp 0x45d50d
push 5
push esi
push str.intpe
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45cfea
add esi, 8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
jmp 0x45d50d
push 5
push esi
push str.float
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d009
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
jmp 0x45cf66
push 6
push esi
push 0x4ca470
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d02b
push 8
pop eax
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
jmp 0x45cfbd
push 7
push esi
push str.ldouble
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d053
push 8
pop eax
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
add esi, 0xc
jmp 0x45d50d
push 5
push esi
push str.int64
call fcn.0043fc19
add esp, 0xc
test al, al
push 8
jne 0x45d0fc
push esi
push str.longlong
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d08e
add esi, 0xe
mov dword [ebp + 0x50], 8
jmp 0x45cfe2
push edi
push esi
push str.long
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d0a9
mov dword [ebp + 0x50], edi
jmp 0x45cf40
push 6
push esi
push str.intsys
call fcn.0043fc19
add esp, 0xc
test al, al
jne 0x45d471
push 3
push esi
push 0x4ca13c
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d50d
xor eax, eax
mov ax, word [esi + 6]
and eax, 0xffdf
cmp ax, 0x53
je 0x45d0fa
cmp ax, 0x41
jb 0x45d0fa
cmp ax, 0x5a
jbe 0x45d50d
push 4
pop eax
add esi, eax
mov dword [ebp + 0x50], eax
jmp 0x45cfe2
cmp di, 0x3f
jne 0x45d50d
inc esi
push 1
inc esi
push esi
push 0x4c6330
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d1ba
inc esi
inc esi
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
push 0x2a
pop edi
mov dword [ebp + 0x1c], edi
mov edx, esi
je 0x45d167
mov eax, ecx
call fcn.0043e785
test al, al
jne 0x45d15f
cmp cx, 0x3a
je 0x45d15c
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45d13f
jmp 0x45d15f
mov dword [ebp + 0x5c], esi
cmp word [esi], bx
je 0x45d167
mov word [esi], bx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xd0]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x94]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xd0], ebx
push eax
call fcn.00452224
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45d56f
mov esi, dword [ebp - 0xd0]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45d1ac
mov esi, 0x4caf20
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45d1ba
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d216
xor edx, edx
inc edx
add esi, 6
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d1ee
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d200
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45d4fe
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x45d4fc
push 5
push esi
push str.wchar
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d235
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x1c], edx
jmp 0x45d254
push 5
push esi
push str.short
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d291
push 2
pop eax
push eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x1c], eax
pop edx
add esi, 8
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d269
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d27b
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45d4fe
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x45d4fc
push 3
push esi
push 0x4ca480
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d2cc
add esi, edi
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], 0x64
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d2c3
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
cmp word [eax], 0x30
jmp 0x45d311
push 6
push esi
push str.intptr
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d31c
add esi, 0xa
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d2fb
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d30d
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45d4fe
jmp 0x45d4fc
push 5
push esi
push str.float
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d344
add esi, 8
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
jmp 0x45d50d
push 6
push esi
push 0x4ca470
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d372
push 8
pop eax
add esi, 0xa
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], eax
jmp 0x45d50d
push 7
push esi
push str.ldouble
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d391
push 8
pop eax
add esi, 0xc
mov dword [ebp - 0x7c], eax
jmp 0x45d364
push 5
push esi
push str.int64
call fcn.0043fc19
add esp, 0xc
test al, al
push 8
je 0x45d3ac
pop edx
add esi, edx
jmp 0x45d3c4
push esi
push str.longlong
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d3fd
push 8
add esi, 0xe
pop edx
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edx
je 0x45d3d5
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d3e7
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45d4fe
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45d4fc
push edi
push esi
push str.long
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d436
mov eax, dword [ebp + 0x5c]
add esi, 6
cmp eax, ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45d4dd
lea esi, [eax - 2]
jmp 0x45d4dd
push 5
push esi
push str.intpe
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d44f
add esi, 8
jmp 0x45d4cc
push 6
push esi
push str.intsys
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d4b3
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], edi
je 0x45d471
mov esi, dword [ebp + 0x5c]
add esi, 0xfffffff6
xor eax, eax
add esi, 0xa
cmp byte [0x4dcc3d], 3
mov dword [ebp + 0x54], ebx
sete al
lea eax, [eax*4 + 4]
mov dword [ebp + 0x50], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
jne 0x45d50d
cmp byte [0x4dcc3d], 3
mov esi, eax
je 0x45d4aa
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x45d50d
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45d50d
push 3
push esi
push 0x4ca13c
call fcn.0043fc19
add esp, 0xc
test al, al
je 0x45d50d
push 4
pop edi
add esi, edi
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
je 0x45d4dd
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45d4ef
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45d4fe
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x45d50d
add dword [ebp + 0x2c], 4
mov esi, eax
inc esi
inc esi
cmp dword [ebp - 0x10], ebx
jne 0x45ca75
lea ecx, [ebp - 0x6c]
call fcn.00444f6c
mov esi, dword [ebp + 0xc]
push 0x3b
push 0x2c
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.00439aaa
push 0x3b
push 0x2c
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.00439aaa
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0xb0]
mov dword [ebp + 0x4c], eax
je 0x45d579
cmp word [eax], bx
jne 0x45d579
mov eax, dword [ebp - 0x6c]
cmp word [eax], bx
jne 0x45d579
xor esi, esi
jmp 0x45ecaa
mov esi, 0x80070057
jmp 0x45ecb2
cmp byte [ebp + 0x7c], 2
mov edx, esi
setge byte [ebp + 0x2b]
mov al, byte [ebp + 0x2b]
neg al
mov dword [ebp - 0x10], edx
sbb eax, eax
and eax, esi
cmp dword [ebp - 0x24], ebx
mov dword [ebp - 0x44], eax
mov eax, esi
mov dword [ebp + 0x18], eax
jle 0x45d5ba
dec dword [ebp - 0x24]
js 0x45d5b1
mov ecx, dword [ebp - 0x24]
inc ecx
sub dword [ebp - 0x24], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x45d5a8
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2b], 0
je 0x45d5ba
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x40]
cmp eax, ebx
jle 0x45d5ce
dec eax
js 0x45d5ce
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x45d5c5
mov dword [ebp - 0x10], edx
cmp byte [ebp + 0x37], 0
je 0x45d5db
mov byte [ebp + 0x4b], 0
mov dword [ebp + 0x30], ebx
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp - 0x68], ebx
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0x5c], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xd4], ebx
jle 0x45d655
push dword [ebp + 0x4c]
call edi
push dword [ebp + 0x60]
mov esi, eax
mov ebx, 0x641
add esi, ebx
call edi
add eax, ebx
add eax, esi
push eax
lea ecx, [ebp + 0x5c]
call fcn.00444fb1
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 0x5c]
lea esi, [eax + esi*2]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xd4], esi
jmp 0x45e3c7
xor esi, esi
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
lea edi, [ebp - 0x10c]
rep stosd dword es:[edi], eax
xor ebx, ebx
lea eax, [ebp - 0x114]
lea ecx, [ebp + 0x44]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov byte [ebp + 0x73], bl
mov dword [ebp + 8], eax
mov dword [ebp + 0x3c], esi
call fcn.00444f6c
lea eax, [ebp + 0x58]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xb8]
xor ecx, ecx
cmp dword [ebp - 0x58], ecx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x58]
cdq
mov dword [ebp + 0x58], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov dword [ebp - 0x40], 0xff000000
jl 0x45d76f
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045c8ce
movzx eax, byte [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x60]
xor edi, edi
add esp, 0xc
cmp word [eax], di
mov dword [ebp + 0x40], edi
je 0x45e15d
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045c8ce
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x45d752
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x40], edi
call fcn.0045c8ce
add esp, 0xc
test eax, eax
jle 0x45d752
cmp dword [ebp + 0x40], edi
jne 0x45d75b
cmp dword [ebp - 0x40], edi
je 0x45e15d
movzx ecx, byte [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.004b0a20
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
cmp dword [ebp + 0x40], edi
je 0x45e15d
cmp dword [ebp - 0x40], edi
jne 0x45e15d
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x40], eax
jmp 0x45e15d
cmp byte [ebp + 7], 0
je 0x45d78d
push dword [ebp + 0x60]
push dword [ebp - 0x10]
call fcn.00448995
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x45e049
test byte [ebp + 0x30], 0x80
je 0x45dab8
mov esi, dword [ebp + 0x60]
xor ecx, ecx
push 0x26
or edi, 0xffffffff
pop eax
cmp word [esi], ax
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp + 0x38], esi
mov ebx, edi
mov byte [ebp + 0x2a], cl
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x40], ecx
jne 0x45d86d
push 2
mov byte [ebp + 0x2a], 1
pop edx
cmp ax, 0x3b
je 0x45d7f7
cmp ax, 0x2c
je 0x45d7f7
cmp ax, 0x3a
je 0x45d7f7
cmp ax, 0x40
je 0x45d7f7
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45d7d2
mov ax, word [esi]
cmp ax, cx
je 0x45d807
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45d844
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x40], esi
je 0x45d844
cmp ax, 0x3b
je 0x45d837
cmp ax, 0x2c
je 0x45d837
cmp ax, 0x3a
je 0x45d837
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45d818
cmp word [esi], cx
je 0x45d844
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
mov ecx, dword [ebp - 0x10]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x60]
call fcn.00410e94
test eax, eax
je 0x45e408
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov ebx, dword [eax + 0x10]
xor edi, edi
jmp 0x45d94f
push 5
push esi
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x45d99e
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x45d8a6
cmp ax, 0x3b
je 0x45d8b1
cmp ax, 0x2c
je 0x45d8b1
cmp ax, 0x3a
je 0x45d8b1
cmp ax, 0x40
je 0x45d8b1
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45d88c
mov ax, word [esi]
cmp ax, di
je 0x45d8c1
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45d8fe
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x40], esi
je 0x45d8fe
cmp ax, 0x3b
je 0x45d8f1
cmp ax, 0x2c
je 0x45d8f1
cmp ax, 0x3a
je 0x45d8f1
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45d8d2
cmp word [esi], di
je 0x45d8fe
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [ecx], di
je 0x45e96c
mov eax, 0x4c1a3c
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00441761
cmp eax, edi
je 0x45e96c
cmp dword [eax + 4], 0x14
jne 0x45e96c
cmp dword [eax + 0x48], 0xfffffffe
jne 0x45e96c
cmp dword [eax + 0x50], edi
jle 0x45e96c
mov ecx, dword [eax + 0x44]
mov dword [ebp + 0x60], ecx
mov eax, dword [eax + 0x50]
dec eax
dec eax
cdq
mov ebx, eax
mov edi, edx
cmp dword [ebp + 0x40], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
je 0x45d9c1
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0045c8ce
add esp, 0xc
test eax, eax
jle 0x45d9c1
cmp dword [ebp - 0x9c], 0
jl 0x45d9c1
mov eax, dword [ebp - 0xa0]
jg 0x45d98b
test eax, eax
jbe 0x45d9c1
add dword [ebp + 0x60], eax
sub ebx, eax
sbb edi, dword [ebp - 0x9c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jmp 0x45d9c1
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045c8ce
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp + 0x38]
add esp, 0xc
mov dword [ebp + 0x60], eax
cmp word [esi], 0x7e
sete byte [ebp + 6]
cmp byte [ebp + 6], 0
je 0x45d9d4
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [esi], 0x2a
sete byte [ebp + 0x13]
cmp byte [ebp + 0x13], 0
je 0x45d9eb
inc esi
inc esi
and dword [ebp + 0x24], 0
mov dword [ebp + 0x38], esi
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045c8ce
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x45da12
mov dword [ebp + 0x60], 0x4c2892
jmp 0x45e049
cmp eax, 1
jge 0x45da48
cmp byte [ebp + 0x2a], 0
jne 0x45da63
cmp byte [ebp + 0x13], 0
je 0x45da32
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0x14], edx
jmp 0x45da66
cmp byte [ebp + 6], 0
jg 0x45da63
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp - 0x14], esi
jmp 0x45da66
cmp byte [ebp + 0x2a], 0
je 0x45da63
cmp dword [ebp - 0x14], edi
jl 0x45da63
jg 0x45da5c
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jbe 0x45da66
mov eax, ebx
mov dword [ebp - 0x14], edi
jmp 0x45da66
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], esi
jl 0x45e442
jg 0x45da79
cmp eax, esi
jb 0x45e442
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x45e15d
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x4c]
call fcn.00410e94
test eax, eax
je 0x45e46b
test byte [eax + 0x17], 0xc0
je 0x45e47f
and dword [eax + 4], ebx
jmp 0x45e47f
xor edi, edi
cmp dword [ebp + 0x30], edi
je 0x45e050
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x40], edi
xor ecx, ecx
jmp 0x45dae7
cmp cx, 0x2c
je 0x45daf4
cmp cx, 0x3b
je 0x45daf4
cmp cx, 0x3a
je 0x45daf4
cmp cx, 0x7c
je 0x45daf4
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x24], eax
jne 0x45dacd
jmp 0x45db03
mov cx, word [eax]
mov word [eax], di
inc eax
inc eax
mov word [ebp + 0x40], cx
mov dword [ebp + 0x24], eax
mov ecx, dword [ebp + 0xc]
push edi
push 0x2c
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00439aaa
mov ecx, dword [ebp - 0x10]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.00410e94
cmp eax, edi
je 0x45e96c
lea edi, [eax + 4]
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebp + 0x30]
add eax, 0x10
mov esi, dword [eax]
xor ebx, ebx
cmp ecx, 8
jne 0x45db92
push dword [ebp - 0x6c]
mov dword [ebp - 0x14], ebx
push esi
push dword [ebp + 0xc]
call fcn.00447664
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], bx
je 0x45e4b4
push dword [edi]
push str.0x_p
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x15c]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x45e049
cmp ecx, 4
jne 0x45dcc5
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410e94
cmp word [ebp + 0x40], 0
mov edi, eax
jne 0x45e504
test edi, edi
je 0x45e15d
test byte [edi + 0x17], 0xc0
je 0x45e15d
mov eax, dword [ebp + 0x60]
mov dword [ebp + 8], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], ebx
cmp dword [ebp - 0x8c], 0
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x78], ecx
jle 0x45dbee
and dword [ebp + 0x54], 0
push 4
pop ecx
mov eax, dword [ebp - 0x20]
cdq
mov esi, eax
add esi, ecx
mov ecx, dword [edi + 0x10]
mov ebx, edx
adc ebx, dword [ebp + 0x54]
xor edx, edx
test byte [edi + 0x17], 0xc0
mov dword [ebp - 0x4c], ecx
je 0x45dc1b
cmp ebx, edx
jl 0x45dc1b
jg 0x45e408
cmp esi, ecx
ja 0x45e408
mov eax, esi
sub eax, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [ebp - 0xe0], ecx
js 0x45dc7b
jg 0x45dc31
test eax, eax
jbe 0x45dc7b
push 0
mov eax, esi
add eax, 1
mov ecx, ebx
push 2
adc ecx, 0
push ecx
push eax
call fcn.004ae880
add eax, 2
lea ecx, [edi + 4]
push eax
mov dword [ebp - 0xe0], edx
mov dword [ebp + 0x7c], eax
call fcn.00444fb1
mov eax, dword [ebp + 0x7c]
add eax, eax
sub eax, dword [ebp - 0x4c]
push eax
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x4c]
push 0
push eax
call fcn.004ae820
add esp, 0xc
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45dcb4
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.0044519d
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45dc8c
push dword [ebp + 0x78]
push dword [ebp + 8]
push edi
call fcn.004145c5
jmp 0x45e613
cmp ecx, 0x100
jne 0x45df2c
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410e94
or dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov edi, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0x118], eax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp + 0x38], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0xc], 0xfffffff8
call fcn.00405bdb
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bdb
and dword [ebp + 0x40], 0
add esp, 0x10
cmp dword [ebp - 8], 0
jg 0x45dd54
jl 0x45dd47
cmp dword [ebp - 0xc], 0
jae 0x45dd54
mov dword [ebp + 0x40], 1
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], ebx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bdb
mov eax, dword [ebp + 0x24]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x45dd7a
cmp cx, 0x69
jne 0x45dd8f
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], ecx
jne 0x45dd99
jmp 0x45dd95
mov ecx, dword [ebp - 0xd8]
and dword [ebp + 0x40], 0
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x45e408
jg 0x45ddaf
cmp dword [ebp - 0x34], eax
jb 0x45e408
cmp dword [ebp - 0x28], eax
jl 0x45e408
jg 0x45ddc3
cmp dword [ebp - 0x2c], eax
jb 0x45e408
cmp dword [ebp - 8], eax
jl 0x45e408
jg 0x45ddd7
cmp dword [ebp - 0xc], eax
jbe 0x45e408
cmp dword [ebp - 0x28], ebx
jg 0x45e408
jl 0x45ddeb
cmp dword [ebp - 0x2c], esi
ja 0x45e408
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x30], eax
jg 0x45e408
jl 0x45de05
cmp dword [ebp - 0x34], edi
ja 0x45e408
cmp dword [ebp + 0x40], 0
jne 0x45de51
sub esi, dword [ebp - 0x2c]
sbb ebx, dword [ebp - 0x28]
sub edi, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, ebx
jl 0x45de25
jg 0x45de21
cmp edi, esi
jbe 0x45de25
mov edi, esi
mov eax, ebx
cmp dword [ebp - 8], eax
jl 0x45de37
jg 0x45de31
cmp dword [ebp - 0xc], edi
jbe 0x45de37
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
test cl, 0x20
je 0x45de51
push 0
push 2
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.004ae880
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jl 0x45df1d
jg 0x45de67
cmp dword [ebp - 0xc], 0
jbe 0x45df1d
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + 0x60]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x34]
add ecx, edx
mov edx, dword [ebp + 8]
cmp dx, 0x73
jne 0x45dea4
cmp dword [ebp + 0x40], 0
je 0x45de97
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x45df1a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x45df1a
cmp dx, 0x53
jne 0x45dec7
cmp dword [ebp + 0x40], 0
je 0x45deba
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x45df1a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x45df1a
cmp dx, 0x69
jne 0x45deea
cmp dword [ebp + 0x40], 0
je 0x45dedd
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x45df1a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x45df1a
cmp dx, 0x49
jne 0x45df0d
cmp dword [ebp + 0x40], 0
je 0x45df00
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x45df1a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x45df1a
push dword [ebp - 0xc]
push ecx
push eax
call fcn.0043e88e
add esp, 0xc
mov dword [ebp + 0x38], eax
movsx eax, word [ebp + 0x38]
push eax
push 0x4c22c0
jmp 0x45db69
cmp ecx, 1
jne 0x45dfd4
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.004ae930
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xe0], edx
call fcn.00444e3a
push ebx
push ebx
push edi
push dword [ebp + 0x58]
push esi
push dword [ebp + 0x60]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cdq
cmp edx, ebx
mov esi, eax
mov dword [ebp - 0x48], edx
jg 0x45df80
jl 0x45df79
cmp esi, ebx
jae 0x45df80
xor esi, esi
mov dword [ebp - 0x48], ebx
jmp 0x45df95
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jl 0x45df95
jg 0x45df90
cmp esi, edi
jbe 0x45df95
mov esi, edi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp - 0x48]
mov byte [eax + esi], 0
push ebx
mov eax, esi
add eax, 1
push 2
adc ecx, ebx
push ecx
push eax
call fcn.004ae880
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00444fb1
mov eax, dword [ebp + 0x58]
mov word [eax + edi*2], bx
mov ebx, dword [ebp - 0x48]
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x45e15d
cmp ecx, 2
jne 0x45e02c
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xb4], ebx
call fcn.00444fb1
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4dcbe4]
mov esi, eax
cmp esi, edi
jge 0x45e005
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00444fb1
mov ecx, dword [ebp + 0x58]
lea eax, [esi + esi]
mov word [eax + ecx], di
cdq
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], ecx
mov esi, eax
mov ebx, edx
jmp 0x45e15d
cmp ecx, 0x20
jne 0x45ec56
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov esi, dword [eax]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0xc0], eax
mov byte [ebp + 0x73], 1
xor ebx, ebx
jmp 0x45e15d
cmp byte [ebp + 0x67], 0
je 0x45e07f
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x45e07f
xor ecx, ecx
mov cl, byte [ebp - 0xa4]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.0044e88f
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0045c7d4
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x98]
dec eax
cmp eax, edi
jl 0x45e0a9
lea edi, [eax + 1]
mov ecx, dword [ebp - 0x10]
push 0
push 0
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x60]
call fcn.004553cd
dec edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x60], eax
jne 0x45e08d
mov eax, dword [ebp + 0x60]
xor edi, edi
cmp word [eax], di
je 0x45e0d0
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045be83
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
add esp, 0x10
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x58]
sete byte [ebp + 0x73]
xor eax, eax
cmp eax, edi
jg 0x45e61b
jl 0x45e0ef
cmp dword [ebp + 0x1c], edi
ja 0x45e61b
cmp dword [ebp + 0x54], edi
jg 0x45e95e
jl 0x45e103
cmp dword [ebp + 0x50], edi
ja 0x45e95e
cmp byte [ebp + 0x4b], 0
je 0x45e14d
cmp ebx, edi
jl 0x45e673
jg 0x45e11b
cmp esi, edi
jbe 0x45e673
mov edi, 0x4ddd50
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410e94
test eax, eax
mov dword [ebp + 8], eax
jne 0x45eb3d
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45e15d
cmp byte [ebp + 0x37], 0
je 0x45e15d
cmp byte [ebp + 0x2b], 0
je 0x45ec1c
xor eax, eax
cmp dword [ebp - 0x24], eax
mov dword [ebp + 8], eax
je 0x45e195
cmp byte [ebp + 0x7c], al
jne 0x45e195
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x45e195
cmp byte [ebp + 0x73], al
jne 0x45e195
cmp dword [ebp - 0x58], eax
jge 0x45e195
cmp byte [ebp + 0x37], al
jne 0x45e195
push dword [ebp + 0x60]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x45e39f
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410e94
mov edi, eax
test edi, edi
mov dword [ebp - 0xb4], edi
jne 0x45e213
cmp dword [ebp - 0x58], eax
jge 0x45e207
cmp byte [ebp + 0x73], al
je 0x45e1c7
xor ecx, ecx
mov dword [ebp - 0xd8], ecx
jmp 0x45e1cf
mov ecx, esi
mov dword [ebp - 0xd8], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4c1a3c
jne 0x45e1dd
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x4c]
call fcn.004151f5
cmp dword [ebp - 0x80], 0
mov edi, eax
je 0x45e203
test edi, edi
je 0x45e207
push dword [ebp - 0x80]
lea ecx, [edi + 8]
call fcn.0044e8eb
test edi, edi
jne 0x45e213
mov dword [ebp + 8], 1
jmp 0x45e39f
cmp dword [ebp - 0x58], 0
jl 0x45e325
mov cl, byte [ebp - 0x40]
mov esi, dword [edi + 0x10]
xor edx, edx
inc edx
shl edx, cl
mov eax, esi
sub eax, dword [ebp - 0x60]
xor ecx, ecx
cmp dword [ebp - 0x38], ecx
ja 0x45e243
jb 0x45e23b
cmp dword [ebp - 0x3c], eax
ja 0x45e243
mov ebx, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x38]
jne 0x45e249
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0x60]
xor eax, eax
mov ecx, edi
sub ecx, edx
add ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x5c], eax
ja 0x45e39f
jb 0x45e26c
cmp dword [ebp - 0x60], esi
jae 0x45e39f
cmp dword [ebp - 0x38], 0
ja 0x45e27c
cmp dword [ebp - 0x3c], 0
jbe 0x45e39f
cmp edx, 2
jb 0x45e314
xor eax, eax
cmp dword [ebp - 0x38], eax
jb 0x45e39f
ja 0x45e29b
cmp dword [ebp - 0x3c], edx
jb 0x45e39f
cmp edx, 2
jne 0x45e2c9
cmp edi, ecx
ja 0x45e39f
mov eax, dword [ebp - 4]
mov dx, ax
sub ecx, edi
shr ecx, 1
inc ecx
shl edx, 0x10
mov dx, ax
shr ecx, 1
mov eax, edx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
jmp 0x45e39f
cmp edx, 4
jne 0x45e2e6
cmp edi, ecx
ja 0x45e39f
mov eax, dword [ebp - 4]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x45e39f
cmp edx, 8
jne 0x45e314
cmp edi, ecx
ja 0x45e39f
mov eax, dword [ebp - 4]
sub ecx, edi
mov dword [edi], eax
mov eax, dword [ebp]
shr ecx, 2
mov dword [edi + 4], eax
and ecx, 0x3ffffffe
mov esi, edi
add edi, edx
rep movsd dword es:[edi], dword [esi]
jmp 0x45e39f
push dword [ebp - 0x3c]
push dword [ebp - 4]
push edi
call fcn.004ae820
add esp, 0xc
jmp 0x45e39f
cmp byte [ebp + 0x37], 0
jne 0x45e39f
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x45e364
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x45e35c
cmp byte [ebp + 0x73], 0
je 0x45e34c
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ebp + 0x60], eax
push ebx
push esi
push dword [ebp + 0x60]
push edi
call fcn.0043efd2
add esp, 0x10
jmp 0x45e39f
test al, al
je 0x45e364
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x45e390
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0xc0]
mov dword [eax], ecx
mov ecx, dword [edi + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 4], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
jmp 0x45e39f
test ecx, ecx
je 0x45e39f
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402eaa
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
cmp dword [ebp - 0x68], 0
jle 0x45ec8f
mov esi, dword [ebp - 0xd4]
push dword [ebp - 0x74]
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xc8]
dec dword [ebp - 0x68]
push eax
mov dword [ebp + 0x4c], eax
call fcn.0044195c
push dword [ebp - 0x70]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xcc]
push esi
call fcn.0044195c
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x74], eax
add esp, 0x18
add dword [ebp - 0x70], eax
jmp 0x45d655
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
test eax, eax
je 0x45e438
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45ecaa
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
cmp eax, esi
jmp 0x45e42f
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x4c1a3c
push dword [ebp + 0x4c]
call fcn.004151f5
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x45e494
mov edx, 0x80000000
or esi, ecx
or ebx, edx
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ebx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x7c], ecx
lea ecx, [ebp + 0x7c]
mov dword [eax + 4], edi
call fcn.0043e825
jmp 0x45ec56
mov eax, dword [ebp - 0x6c]
mov si, word [eax]
neg si
lea ecx, [ebp + 0x58]
sbb esi, esi
and esi, 0x7ff8ffa9
add esi, 0x80070057
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
test eax, eax
je 0x45ecaa
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45ecaa
mov ecx, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp + 0x20], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], ebx
mov dword [ebp + 0x1c], ecx
call fcn.00405bdb
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bdb
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405bdb
add esp, 0x18
cmp dword [ebp - 0x30], 0
jl 0x45e408
jg 0x45e561
cmp dword [ebp - 0x34], 0
jb 0x45e408
cmp dword [ebp - 0x28], 0
jl 0x45e408
jg 0x45e577
cmp dword [ebp - 0x2c], 0
jbe 0x45e408
cmp dword [ebp - 0x30], ebx
jg 0x45e408
jl 0x45e58b
cmp dword [ebp - 0x34], esi
ja 0x45e408
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x20]
jg 0x45e408
mov ecx, dword [ebp - 0x4c]
jl 0x45e5a5
cmp ecx, dword [ebp + 0x1c]
ja 0x45e408
test eax, eax
jg 0x45e5b3
jl 0x45e5af
test ecx, ecx
jae 0x45e5b3
xor ecx, ecx
xor eax, eax
sub esi, dword [ebp - 0x34]
sbb ebx, dword [ebp - 0x30]
sub dword [ebp + 0x1c], ecx
sbb dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jl 0x45e5d2
jg 0x45e5cd
cmp dword [ebp - 0x2c], esi
jbe 0x45e5d2
mov dword [ebp - 0x2c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x20]
jl 0x45e5e9
jg 0x45e5e1
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x1c]
jbe 0x45e5ec
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
jmp 0x45e5ec
mov edx, dword [ebp - 0x2c]
test eax, eax
jl 0x45ec56
jg 0x45e5fe
test edx, edx
jbe 0x45ec56
mov eax, dword [ebp + 0x60]
push edx
mov edx, dword [ebp - 0x34]
add edx, eax
mov eax, dword [edi + 4]
push edx
add eax, ecx
push eax
call fcn.0041457b
add esp, 0xc
jmp 0x45ec56
cmp dword [ebp + 0x1c], 0x2a
jne 0x45e629
cmp eax, edi
je 0x45e96c
cmp dword [ebp - 0x8c], edi
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xb4], eax
jle 0x45e644
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x7c]
call fcn.00444f6c
mov ecx, dword [ebp + 0xc]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.00439aaa
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x45e69f
lea ecx, [ebp + 0x7c]
call fcn.0043e825
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
cmp eax, edi
jmp 0x45ec7d
mov eax, dword [ebp + 0x14]
xor bl, bl
cmp word [eax], 0x7e
jne 0x45e6b1
add dword [ebp + 0x14], 2
mov bl, byte [ebp + 0x50]
push dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x14]
push eax
mov dword [ebp - 4], edi
mov dword [ebp], edi
call fcn.00451cbd
add esp, 0xc
test bl, bl
je 0x45e6e5
push dword [ebp]
movsx eax, bl
push dword [ebp - 4]
cdq
push edx
push eax
call fcn.004ae930
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov eax, dword [ebp - 4]
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cdq
mov ebx, eax
add ebx, dword [ebp + 0x50]
mov eax, dword [ebp - 0x64]
mov esi, edx
adc esi, dword [ebp + 0x54]
xor edi, edi
cmp eax, edi
mov word [ebp - 0x1fc], di
mov dword [ebp - 4], edi
mov dword [ebp], edi
jle 0x45e716
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], di
mov ecx, dword [ebp + 0x4c]
mov ax, word [ecx]
call fcn.00414b24
test al, al
je 0x45e74e
and dword [ebp + 0x78], 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp + 0x70], ecx
call fcn.004412d1
mov edi, dword [ebp + 0x78]
mov eax, 0x7fffffff
sub eax, edi
cdq
pop ecx
pop ecx
mov dword [ebp - 4], eax
mov dword [ebp], edx
jmp 0x45e76f
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.00410e94
test eax, eax
je 0x45e76f
mov ecx, dword [eax + 0x10]
and dword [ebp], 0
mov edi, dword [eax + 4]
mov dword [ebp - 4], ecx
cmp dword [ebp], esi
mov dword [ebp + 0x78], 1
jl 0x45e90c
jg 0x45e78a
cmp dword [ebp - 4], ebx
jb 0x45e90c
and dword [ebp + 0x78], 0
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45e7c4
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.0044519d
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45e79c
push dword [ebp - 0xb4]
lea eax, [ebp - 0x114]
push edi
push eax
call fcn.004145c5
xor edx, edx
add esp, 0xc
cmp dword [ebp - 0x78], edx
je 0x45e804
fld dword [ebp - 0x114]
push 0x4caeb0
push ecx
lea eax, [ebp - 0x1fc]
fstp dword [esp]
push eax
call fcn.0049c1ec
add esp, 0xc
jmp 0x45e90c
cmp dword [ebp - 0x88], edx
je 0x45e82d
fld qword [ebp - 0x114]
push 0x4ca460
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.0049c215
jmp 0x45e909
cmp dword [ebp - 0x7c], edx
je 0x45e853
fld qword [ebp - 0x114]
push 0x4ca460
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.0049c215
jmp 0x45e909
cmp dword [ebp + 0x1c], 0x64
jne 0x45e86c
xor eax, eax
cmp eax, edx
jne 0x45e86c
push dword [ebp - 0x114]
push str.0x_p
jmp 0x45e8b1
mov ecx, dword [ebp - 0xac]
cmp ecx, 1
jne 0x45e887
xor eax, eax
cmp eax, edx
jne 0x45e887
movsx eax, byte [ebp - 0x114]
push eax
jmp 0x45e8ac
cmp ecx, 2
jne 0x45e89b
xor eax, eax
cmp eax, edx
jne 0x45e89b
movsx eax, word [ebp - 0x114]
jmp 0x45e884
cmp ecx, 4
jne 0x45e8c3
xor eax, eax
cmp eax, edx
jne 0x45e8c3
push dword [ebp - 0x114]
push 0x4c22c0
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x45e7fc
cmp ecx, 8
jne 0x45e8ee
xor eax, eax
cmp eax, edx
jne 0x45e8ee
push dword [ebp - 0x110]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x114]
push str._I64d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x45e909
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push eax
call fcn.0049c16d
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x1fc]
push eax
push dword [ebp + 0x7c]
call fcn.00444692
lea ecx, [ebp + 0x7c]
call fcn.0043e825
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
test eax, eax
je 0x45e956
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x45ecaa
cmp dword [ebp + 0x50], 0x2a
mov dword [ebp - 0x1c], edi
jne 0x45e998
cmp dword [ebp + 0x54], edi
jne 0x45e998
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
cmp eax, edi
jmp 0x45e42f
cmp word [ecx], 0x26
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x7b], 0
mov byte [ebp + 0x7f], 1
jne 0x45e9f0
push 0x3a
lea eax, [ebp + 0x70]
mov byte [ebp + 0x7f], 0
mov ebx, ecx
call fcn.00405bbb
mov eax, dword [ebp + 0x70]
mov si, word [eax]
cmp si, di
pop ecx
je 0x45e9c8
mov word [eax], di
mov ecx, dword [ebp + 0xc]
push edi
push 0xffffffffffffffff
push edi
push ebx
call fcn.00410e94
cmp si, di
je 0x45e9e0
mov ecx, dword [ebp + 0x70]
mov word [ecx], si
cmp eax, edi
je 0x45e9f0
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x54]
cmp dword [ebp - 0x78], edi
je 0x45ea15
cmp byte [ebp + 0x7f], 0
je 0x45ea0a
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004480f6
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp dword [ebp - 0x114]
jmp 0x45ea70
cmp dword [ebp - 0x88], edi
je 0x45ea3d
cmp byte [ebp + 0x7f], 0
je 0x45ea32
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004480f6
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp qword [ebp - 0x114]
jmp 0x45ea70
cmp dword [ebp - 0x7c], edi
jne 0x45ea1d
cmp byte [ebp + 0x7f], 0
je 0x45ea60
push dword [ebp + 0xc]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00451cbd
add esp, 0xc
jmp 0x45ea70
mov eax, dword [ebp - 0x1c]
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
mov eax, dword [ebp + 0x70]
cmp word [eax], di
je 0x45eacc
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x7e
jne 0x45ea8f
mov al, byte [ebp + 0x50]
add dword [ebp + 0x70], 2
mov byte [ebp + 0x7b], al
push dword [ebp + 0xc]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
call fcn.00451cbd
add esp, 0xc
cmp byte [ebp + 0x7b], 0
je 0x45eac6
push dword [ebp - 0x50]
movsx eax, byte [ebp + 0x7b]
push dword [ebp - 0x54]
cdq
push edx
push eax
call fcn.004ae930
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x54]
add dword [ebp - 0x20], eax
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410e94
mov edi, eax
test edi, edi
jne 0x45dbd8
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x4c1a3c
push dword [ebp + 0x4c]
call fcn.004151f5
mov edi, eax
test edi, edi
jne 0x45dbd8
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
test eax, eax
je 0x45eb35
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45ecaa
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 0x14]
add edi, 4
mov edx, dword [edi]
xor ecx, ecx
test eax, eax
mov dword [ebp + 0x78], edx
jg 0x45ebc6
jl 0x45eb5e
cmp dword [ebp - 0x60], ecx
jae 0x45ebc6
and dword [edi], 0
mov byte [ebp + 0x7f], 1
mov eax, dword [ebp - 0x60]
add eax, esi
push 0
adc ecx, ebx
push 2
push ecx
push eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
call fcn.004ae880
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xe0], edx
call fcn.00444fb1
mov ecx, dword [edi]
lea eax, [ebx + ebx]
and word [ecx + eax + 2], 0
mov ecx, dword [edi]
and word [eax + ecx], 0
cmp byte [ebp + 0x4b], 1
mov edi, dword [edi]
jne 0x45ebcc
cmp byte [ebp + 0x7f], 0
je 0x45ebbf
push dword [ebp - 0x60]
push dword [ebp + 0x78]
push edi
call fcn.004145c5
add esp, 0xc
mov eax, dword [ebp - 0x60]
add edi, eax
jmp 0x45ebf3
mov byte [ebp + 0x7f], 0
jmp 0x45eb65
cmp byte [ebp + 0x4b], 2
jne 0x45ec00
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x60]
lea eax, [edi + esi]
je 0x45ebe9
push dword [ebp + 0x78]
push eax
call fcn.004145c5
jmp 0x45ebf0
push edi
push eax
call fcn.0041457b
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.004145c5
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
push 0x4ddd50
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45ec56
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410e94
mov esi, eax
cmp esi, edi
je 0x45ec56
test byte [esi + 0x17], 0xc0
je 0x45ec43
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x45ec56
push 0x4c1a3c
lea ecx, [esi + 4]
call fcn.0044e88f
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.0043e825
lea ecx, [ebp + 0x44]
call fcn.0043e825
lea ecx, [ebp + 0x3c]
call fcn.0043e825
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
test eax, eax
je 0x45d568
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45d568
lea ecx, [ebp + 0x5c]
call fcn.0043e825
mov eax, 0x4ddd50
test eax, eax
je 0x45eca7
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x6c]
call fcn.0043e825
pop edi
lea ecx, [ebp - 0xb0]
call fcn.0043e825
lea ecx, [ebp - 0x94]
call fcn.0043e825
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10