Function at 0x46cb80
Capabilities:
Resolve function by parsing pe exports
Set environment variable

Disassembly:
push 0xffffffffffffffff
push 0x4eadde
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1d4
xor edx, edx
push ebx
push ebp
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x1f4]
or eax, 0xffffffff
xor ebp, ebp
cmp ecx, edx
push esi
push edi
mov dword [esp + 0x98], edx
mov byte [esp + 0x17], dl
mov byte [esp + 0x2e], dl
mov byte [esp + 0x2f], dl
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0xb8], 1
mov dword [esp + 0x5c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0xa8], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x74], str._I64d
mov dword [esp + 0x40], eax
mov ebx, 4
je 0x46d486
cmp word [ecx], dx
mov esi, ecx
je 0x46d486
lea ecx, [ecx]
mov di, word [esi]
cmp di, 9
jb 0x46cc53
cmp di, 0xd
jbe 0x46d452
cmp di, 0x20
je 0x46d452
cmp di, 0x2e
je 0x46d43d
cmp di, 0x24
je 0x46d43d
cmp di, 0x25
je 0x46d43d
cmp di, 0x2a
jne 0x46cc8b
or byte [esp + 0x17], 4
jmp 0x46d43d
cmp di, 0x7e
jne 0x46cce8
cmp word [esi + 2], di
jne 0x46cca4
or byte [esp + 0x17], 2
add esi, 2
jmp 0x46d43d
cmp di, 0x7e
jne 0x46cce8
cmp word [esi + 2], 0x2e
jne 0x46ccbe
or byte [esp + 0x17], 8
add esi, 2
jmp 0x46d43d
cmp di, 0x7e
jne 0x46cce8
cmp word [esi + 2], 0x2a
jne 0x46ccd8
or byte [esp + 0x17], 0xa
add esi, 2
jmp 0x46d43d
cmp di, 0x7e
jne 0x46cce8
or byte [esp + 0x17], 1
jmp 0x46d43d
push ebx
push esi
push str._env
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cd0e
add esi, 6
mov dword [esp + 0xb8], 0x40
jmp 0x46d43d
push ebx
push esi
push str._raw
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cd31
add esi, 6
mov dword [esp + 0x5c], 0x40
jmp 0x46d43d
cmp di, 0x3c
jne 0x46cd41
mov byte [esp + 0x2e], 1
jmp 0x46d43d
cmp di, 0x3e
jne 0x46cd51
mov byte [esp + 0x2e], 2
jmp 0x46d43d
push ebx
push esi
push str._def
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cd7c
mov al, byte [esp + 0x200]
add esi, 6
add al, 2
mov byte [esp + 0x200], al
jmp 0x46d43d
push ebx
push esi
push str._tom
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cd9c
add esi, 6
mov ebp, 1
jmp 0x46d43d
push ebx
push esi
push str._tow
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cdbc
add esi, 6
mov ebp, 2
jmp 0x46d43d
push 5
push esi
push str._copy
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cdda
add esi, 8
mov ebp, ebx
jmp 0x46d43d
push 5
push esi
push str._addr
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cdfb
add esi, 8
mov ebp, 8
jmp 0x46d43d
mov edi, 8
push edi
push esi
push str._mkdummy
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46ce20
add esi, 0xe
mov ebp, 0x81
jmp 0x46d43d
push 5
push esi
push str._make
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46ce40
add esi, edi
mov ebp, 0x80
jmp 0x46d43d
push 5
push esi
push str._swap
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46ce60
add esi, edi
mov ebp, 0x20
jmp 0x46d43d
push 5
push esi
push str._char
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46ce83
mov dword [esp + 0x20], 1
add esi, edi
jmp 0x46d43d
push 6
push esi
push str._wchar
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cea7
mov dword [esp + 0x20], 2
add esi, 0xa
jmp 0x46d43d
push 6
push esi
push str._short
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cecb
mov dword [esp + 0x20], 2
add esi, 0xa
jmp 0x46d43d
push ebx
push esi
push str._ptr
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46ceea
mov dword [esp + 0x20], ebx
add esi, 6
jmp 0x46d43d
push 6
push esi
push str._float
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cf11
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x20], ebx
add esi, 0xa
jmp 0x46d43d
push 7
push esi
push str._double
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cf38
mov dword [esp + 0x94], edi
mov dword [esp + 0x20], edi
add esi, 0xc
jmp 0x46d43d
push edi
push esi
push str._ldouble
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cf5b
mov dword [esp + 0x64], edi
mov dword [esp + 0x20], edi
add esi, 0xe
jmp 0x46d43d
push 6
push esi
push str._int64
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cf7b
add esi, 0xa
mov dword [esp + 0x20], edi
jmp 0x46d43d
push 9
push esi
push str._longlong
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cf9b
add esi, 0x10
mov dword [esp + 0x20], edi
jmp 0x46d43d
push 5
push esi
push str._long
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cfba
mov dword [esp + 0x20], ebx
add esi, edi
jmp 0x46d43d
push 5
push esi
push str._long
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cfd9
mov dword [esp + 0x20], ebx
add esi, edi
jmp 0x46d43d
push 5
push esi
push str._zero
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46cffd
add esi, 0xa
mov dword [esp + 0x40], 0
jmp 0x46d43d
push 7
push esi
push str._intsys
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d019
add esi, 0xc
jmp 0x46d21c
push ebx
push esi
push str._int
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d04c
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x46d040
cmp ax, 0x5a
jbe 0x46d04c
add esi, 6
mov dword [esp + 0x20], ebx
jmp 0x46d43d
push 5
push esi
push 0x4fa250
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d07c
mov eax, 1
add esi, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x74], str.0x_I64X
jmp 0x46d43d
push 6
push esi
push 0x4fa238
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d0ad
mov eax, 2
add esi, 0xa
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x74], str.0x_I64X
jmp 0x46d43d
push 6
push esi
push 0x4fa230
call fcn.004449d0
add esp, 0xc
test al, al
jne 0x46d090
push ebx
push esi
push 0x4fa228
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d0f0
add esi, 6
mov dword [esp + 0x28], 0x64
mov dword [esp + 0x20], ebx
mov dword [esp + 0x74], str.0x_I64X
jmp 0x46d43d
push 6
push esi
push 0x4fa220
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d11b
add esi, 0xa
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
jmp 0x46d43d
push 7
push esi
push 0x4fa218
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d146
add esi, 0xc
mov dword [esp + 0x94], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
jmp 0x46d43d
push edi
push esi
push 0x4fa20c
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d16d
add esi, 0xe
mov dword [esp + 0x64], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
jmp 0x46d43d
push 6
push esi
push 0x4fa204
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d191
add esi, 0xa
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
jmp 0x46d43d
push 9
push esi
push 0x4fa1f8
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d1b5
add esi, 0x10
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
jmp 0x46d43d
push 5
push esi
push 0x4fa1f0
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d1e0
add esi, edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x74], str.0x_I64X
jmp 0x46d43d
push 6
push esi
push str._intpe
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d204
add esi, 0xa
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
jmp 0x46d43d
push 7
push esi
push 0x4fa1e0
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d236
mov dword [esp + 0x28], ebx
cmp byte [0x51c751], 3
mov dword [esp + 0x20], ebx
jne 0x46d43d
mov dword [esp + 0x20], edi
jmp 0x46d43d
push ebx
push esi
push 0x4fa1d8
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d26d
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x46d25d
cmp ax, 0x5a
jbe 0x46d26d
add esi, 6
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
jmp 0x46d43d
push ebx
push esi
push str._ret
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d2c5
add esi, edi
cmp word [esi], 0x3a
mov dword [esp + 0x78], 1
mov dword [esp + 0x10], esi
jne 0x46d29b
add esi, 2
mov dword [esp + 0x10], esi
mov ax, word [esi]
call fcn.0043af40
test al, al
je 0x46d2bd
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.0044ce90
mov esi, dword [esp + 0x18]
add esp, 8
sub esi, 2
jmp 0x46d43d
push ebx
push esi
push str._get
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d31d
add esi, edi
cmp word [esi], 0x3a
mov dword [esp + 0x38], 1
mov dword [esp + 0x10], esi
jne 0x46d2f3
add esi, 2
mov dword [esp + 0x10], esi
mov ax, word [esi]
call fcn.0043af40
test al, al
je 0x46d2bd
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x14]
push eax
call fcn.0044ce90
mov esi, dword [esp + 0x18]
add esp, 8
sub esi, 2
jmp 0x46d43d
push 3
push esi
push 0x4fa1c4
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d33d
add esi, ebx
mov byte [esp + 0x2f], 1
jmp 0x46d43d
mov edi, 2
push edi
push esi
push 0x4fa1c0
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d37e
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x14]
add esi, ebx
push edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x5c], 1
call fcn.0044ce90
mov esi, dword [esp + 0x18]
add esp, 8
jmp 0x46d43b
push edi
push esi
push 0x4fa1bc
call fcn.004449d0
add esp, 0xc
test al, al
je 0x46d43d
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x14]
add esi, ebx
push ecx
mov dword [esp + 0x18], esi
call fcn.0044ce90
mov edx, dword [esp + 0x18]
xor eax, eax
mov ax, word [edx]
add esp, 8
test ax, ax
je 0x46d3cf
call fcn.00443830
test al, al
jne 0x46d3cf
mov eax, edx
add eax, edi
mov dword [esp + 0x10], eax
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.0044ce90
mov edx, dword [esp + 0x18]
xor eax, eax
mov ax, word [edx]
add esp, 8
test ax, ax
je 0x46d400
call fcn.00443830
test al, al
jne 0x46d400
mov eax, edx
add eax, edi
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0xa8]
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0xa4], esi
call fcn.0044ce90
mov eax, dword [esp + 0x70]
sub eax, esi
mov esi, dword [esp + 0x18]
add esp, 8
inc eax
cmp word [esi], 0x5d
mov dword [esp + 0x84], eax
je 0x46d43d
sub esi, edi
mov ecx, dword [esp + 0x1fc]
add esi, 2
xor edx, edx
cmp word [esi], dx
jne 0x46cc40
cmp dword [esp + 0x5c], edx
mov dword [esp + 0x6c], ebp
je 0x46d486
xor eax, eax
mov ax, word [ecx]
cmp ax, dx
je 0x46d48d
cmp ax, 9
jb 0x46d472
cmp ax, 0xd
jbe 0x46d48d
cmp ax, 0x20
je 0x46d48d
mov ax, word [ecx + 2]
add ecx, 2
cmp ax, dx
jne 0x46d466
jmp 0x46d48d
mov ecx, dword [esp + 0x1f4]
cmp ecx, edx
mov eax, ecx
mov dword [esp + 0x58], eax
je 0x46d4b5
mov cx, word [eax]
cmp cx, 9
jb 0x46d4a6
cmp cx, 0xd
jbe 0x46d4ac
cmp cx, 0x20
jne 0x46d4b5
add eax, 2
mov dword [esp + 0x58], eax
jmp 0x46d497
cmp word [eax], 0x26
jne 0x46d4dd
jmp 0x46d4c0
mov bl, byte [esp + 0x200]
add eax, 2
inc bl
mov dword [esp + 0x58], eax
cmp word [eax], 0x26
mov byte [esp + 0x200], bl
je 0x46d4c0
xor edi, edi
push 2
mov dword [esp + 0x40], edi
call fcn.00449130
add esp, 4
cmp eax, edi
mov dword [esp + 0x3c], eax
je 0x46d4f8
mov word [eax], di
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov cx, word [eax]
cmp cx, di
mov dword [esp + 0x1ec], edi
je 0x46d525
nop
cmp cx, 0x3d
je 0x46d525
add eax, 2
mov dword [esp + 0x58], eax
mov cx, word [eax]
cmp cx, di
jne 0x46d510
xor bl, bl
mov dword [esp + 0x18], 0x4efd50
cmp word [eax], 0x3d
mov ecx, eax
mov byte [esp + 0x37], bl
je 0x46d543
mov bl, 1
mov byte [esp + 0x37], bl
jmp 0x46d54e
add eax, 2
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], eax
mov word [ecx], di
mov edx, dword [esp + 0x30]
push edx
call fcn.004201fa
mov eax, dword [esp + 0x34]
add esp, 4
cmp word [eax], 0x7e
jne 0x46d5d2
add eax, 2
mov dword [esp + 0x30], eax
mov cx, word [eax]
cmp cx, di
mov edx, eax
mov dword [esp + 0x98], edx
je 0x46d595
cmp cx, 0x7e
je 0x46d595
add eax, 2
mov dword [esp + 0x30], eax
mov cx, word [eax]
cmp cx, di
jne 0x46d580
cmp word [eax], 0x7e
je 0x46d5be
mov eax, dword [esp + 0x3c]
cmp eax, edi
je 0x46d5b4
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 0x80070057
jmp 0x46ec3c
mov word [eax], di
add dword [esp + 0x30], 2
cmp word [edx], di
jne 0x46d5d2
mov dword [esp + 0x98], edi
push 2
mov dword [esp + 0x28], edi
call fcn.00449130
add esp, 4
cmp eax, edi
mov dword [esp + 0x24], eax
je 0x46d5eb
mov word [eax], di
mov esi, dword [esp + 0xa4]
push 0x3b
push 0x2c
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
mov byte [esp + 0x1fc], 1
call fcn.0043de70
push 0x3b
push 0x2c
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.0043de70
cmp ebp, 8
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
je 0x46d677
cmp word [eax], di
jne 0x46d677
mov eax, dword [esp + 0x24]
cmp word [eax], di
jne 0x46d677
mov edx, dword [0x51d3c8]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x46eb9f
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
xor eax, eax
jmp 0x46ec3c
mov al, byte [esp + 0x200]
mov ebp, dword [esp + 0x78]
cmp al, 2
setge al
mov cl, al
neg cl
mov edx, esi
mov byte [esp + 0x73], al
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edx
sbb ecx, ecx
and ecx, esi
cmp ebp, edi
mov dword [esp + 0x68], ecx
jle 0x46d6c7
dec ebp
mov dword [esp + 0x78], ebp
js 0x46d6bf
lea ecx, [ebp + 1]
sub ebp, ecx
mov dword [esp + 0x78], ebp
dec ecx
mov edx, dword [edx + 0x28]
jne 0x46d6b5
mov dword [esp + 0x60], edx
test al, al
je 0x46d6c7
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x38]
cmp eax, edi
jle 0x46d6dd
dec eax
js 0x46d6dd
inc eax
dec eax
mov esi, dword [esi + 0x28]
jne 0x46d6d3
mov dword [esp + 0x5c], esi
test bl, bl
je 0x46d6ea
mov byte [esp + 0x2e], 0
mov dword [esp + 0x6c], edi
push 0x51d5ec
mov dword [esp + 0x50], 0x51d5ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor ebp, ebp
mov dword [esp + 0x44], ebp
cmp dword [esp + 0x84], ebp
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xbc], ebp
jle 0x46d792
mov edx, dword [esp + 0x30]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push edx
call edi
mov esi, eax
mov eax, dword [esp + 0x18]
push eax
inc esi
call edi
lea ebx, [eax + esi + 0xc9]
lea eax, [ebx + ebx + 2]
push ebp
call fcn.00449190
add esp, 4
cmp eax, ebp
mov dword [esp + 0x44], eax
je 0x46d765
mov word [eax + ebx*2], bp
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov dword [esp + 0xb4], eax
lea eax, [eax + esi*2 + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0xbc], eax
jmp 0x46e018
xor ecx, ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], ecx
xor ebx, ebx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x38], ebx
mov byte [esp + 0x1f], bl
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebp
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x50], ebp
push 2
mov dword [esp + 0x14], ebp
call fcn.00449130
add esp, 4
cmp eax, ebp
mov dword [esp + 0x10], eax
je 0x46d80f
mov word [eax], bp
xor ebp, ebp
mov dword [esp + 0x48], ebp
lea eax, [esp + 0x7c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x40]
cmp eax, ebp
lea edx, [esp + 0x48]
mov byte [esp + 0x1ec], 6
mov dword [esp + 0xac], edx
jl 0x46d89f
cdq
lea ecx, [esp + 0xc4]
mov dword [esp + 0xc8], edx
push ecx
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0xcc], eax
call fcn.0044cd70
mov esi, dword [esp + 0x20]
add esp, 8
test eax, eax
jle 0x46ddc7
test esi, esi
je 0x46d88e
nop
mov ax, word [esi]
cmp ax, 9
jb 0x46d87f
cmp ax, 0xd
jbe 0x46d885
cmp ax, 0x20
jne 0x46d88e
add esi, 2
mov dword [esp + 0x18], esi
jmp 0x46d870
movzx eax, byte [esp + 0xc4]
mov dword [esp + 0x40], eax
jmp 0x46ddc7
mov al, byte [esp + 0x2f]
test al, al
je 0x46d8c9
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
push ecx
push edx
call fcn.0044d710
mov esi, eax
add esp, 8
mov dword [esp + 0x18], esi
mov ebx, 2
jmp 0x46ddc7
mov eax, dword [esp + 0x6c]
test al, al
jns 0x46da36
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xfc]
push ecx
lea edx, [esp + 0x3c]
push edx
mov dword [esp + 0x104], ebp
mov dword [esp + 0x108], ebp
mov dword [esp + 0x40], eax
call fcn.0044cd70
mov ecx, dword [esp + 0x40]
add esp, 8
test eax, eax
jle 0x46d92e
cmp ecx, ebp
je 0x46d92e
lea esp, [esp]
mov ax, word [ecx]
cmp ax, 9
jb 0x46d91f
cmp ax, 0xd
jbe 0x46d925
cmp ax, 0x20
jne 0x46d92a
add ecx, 2
jmp 0x46d910
mov dword [esp + 0x38], ecx
mov esi, dword [esp + 0xfc]
xor edi, edi
mov dword [esp + 0x18], esi
cmp word [ecx], di
je 0x46d947
add ecx, 2
mov dword [esp + 0x38], ecx
cmp esi, edi
jne 0x46d95b
mov esi, 0x4f004f
mov dword [esp + 0x18], esi
xor ebx, ebx
jmp 0x46ddc7
cmp word [ecx], 0x2a
sete bl
test bl, bl
je 0x46d96d
add ecx, 2
mov dword [esp + 0x38], ecx
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
call fcn.0044cd70
add esp, 8
test eax, eax
jle 0x46d9c3
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x46d9ba
lea esp, [esp]
mov ax, word [ecx]
cmp ax, 9
jb 0x46d9af
cmp ax, 0xd
jbe 0x46d9b5
cmp ax, 0x20
jne 0x46d9ba
add ecx, 2
jmp 0x46d9a0
mov ebx, dword [esp + 0x88]
jmp 0x46d9e0
test bl, bl
push esi
je 0x46d9d2
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
jmp 0x46d9dc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
shl ebx, 1
mov esi, dword [esp + 0x18]
cmp ebx, edi
jl 0x46e08b
mov eax, dword [esp + 0x6c]
and ebx, 0x3fffffff
cmp eax, 0x81
jne 0x46ddc7
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
push 0xffffffffffffffff
push edi
push edx
mov byte [esp + 0x1f8], 7
mov dword [esp + 0x88], esi
call fcn.0041ff6a
cmp eax, edi
je 0x46e104
cmp dword [eax + 0xc], edi
jge 0x46e11a
mov dword [eax + 4], edi
jmp 0x46e11a
cmp eax, ebp
je 0x46dc4b
mov ecx, dword [esp + 0xa4]
push ebp
push 0x2c
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.0043de70
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
push ebp
push ecx
mov ecx, dword [esp + 0x68]
call fcn.0041ff6a
cmp eax, ebp
je 0x46e1b5
mov ecx, dword [esp + 0x6c]
cmp ecx, 8
mov edx, dword [eax + 4]
lea esi, [eax + 4]
mov dword [esp + 0x18], edx
jne 0x46dafb
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x24]
and eax, 0x3fffffff
push eax
lea eax, [esp + 0x108]
push 0x4f40fc
push eax
call edi
add esp, 0xc
lea ecx, [esp + 0x104]
push ecx
mov ecx, dword [esp + 0xa8]
push ebx
call fcn.00448be0
mov edx, dword [esp + 0x30]
cmp word [edx], 0
je 0x46e230
mov eax, dword [esi]
push eax
lea ecx, [esp + 0x1a8]
push str.0x_p
push ecx
call edi
lea edx, [esp + 0x1b0]
add esp, 0xc
mov eax, edx
push eax
mov dword [esp + 0x1c], edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, dword [esp + 0x18]
mov ebx, eax
shl ebx, 1
jmp 0x46ddc7
cmp ecx, 4
jne 0x46db14
mov esi, dword [esi]
mov dword [esp + 0x18], esi
mov ebx, dword [eax + 0xc]
and ebx, 0x3fffffff
jmp 0x46ddc7
cmp ecx, 1
jne 0x46dba9
mov esi, dword [eax + 0xc]
sar esi, 1
and esi, 0x1fffffff
lea edi, [esi + esi*4]
lea eax, [edi + 2]
push 0
call fcn.00449190
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x46db43
mov byte [edi + ebp + 1], 0
mov ecx, dword [esp + 0x18]
push 0
push 0
push edi
push ebp
push esi
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jge 0x46db63
xor ebx, ebx
jmp 0x46db69
cmp ebx, edi
jle 0x46db69
mov ebx, edi
lea eax, [ebx + 1]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
lea eax, [edi + edi + 4]
push ebp
mov byte [ebx + ebp], 0
call fcn.00449190
add esp, 4
test eax, eax
mov dword [esp + 0x48], eax
je 0x46db93
mov word [eax + edi*2 + 2], 0
mov esi, eax
mov word [eax + edi*2], 0
mov byte [esp + 0x1f], 1
mov dword [esp + 0x18], esi
jmp 0x46ddc7
cmp ecx, 2
jne 0x46dc19
mov esi, dword [eax + 0xc]
and esi, 0x3fffffff
xor ebp, ebp
lea eax, [esi + esi + 4]
push ebp
call fcn.00449190
mov edi, eax
add esp, 4
cmp edi, ebp
je 0x46dbd1
mov word [edi + esi*2 + 2], bp
mov edx, dword [esp + 0x18]
push esi
push edi
push esi
push edx
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
cmp ebx, ebp
jge 0x46dbe9
xor ebx, ebx
lea eax, [ebx + ebx + 4]
push edi
call fcn.00449190
add esp, 4
cmp eax, ebp
mov dword [esp + 0x48], eax
je 0x46dc03
mov word [eax + ebx*2 + 2], bp
add ebx, ebx
mov esi, eax
mov word [ebx + eax], bp
mov byte [esp + 0x1f], 1
mov dword [esp + 0x18], esi
jmp 0x46ddc7
cmp ecx, 0x20
jne 0x46e2b6
mov dword [esp + 0xac], esi
mov esi, dword [esi]
add eax, 0xc
mov dword [esp + 0x18], esi
mov ebx, dword [eax]
mov dword [esp + 0xb0], eax
mov byte [esp + 0x1f], 1
and ebx, 0x3fffffff
jmp 0x46ddc7
mov al, byte [esp + 0x17]
test al, al
mov esi, dword [esp + 0x18]
je 0x46dcd1
cmp word [esi], 0
je 0x46dcd1
mov ebp, dword [esp + 0x10]
push esi
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
push edi
call fcn.00449130
mov ecx, edi
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add esp, 4
test ebp, ebp
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x10], eax
je 0x46dca9
mov eax, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov al, byte [esp + 0x17]
xor ecx, ecx
mov cl, byte [esp + 0xb8]
or cl, al
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x60]
push edx
call fcn.0046c9c0
mov ebp, dword [esp + 0x48]
mov esi, eax
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x54]
dec edi
js 0x46dcfe
inc edi
lea esp, [esp]
mov ecx, dword [esp + 0x5c]
push 0
push 0
lea eax, [esp + 0x58]
push eax
push esi
call fcn.00452ca0
dec edi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x18], esi
jne 0x46dce0
xor edi, edi
cmp word [esi], di
je 0x46dd30
mov edx, dword [esp + 0x1fc]
lea ecx, [esp + 0x38]
push ecx
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.0045d7c0
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x58]
add esp, 0x10
mov eax, dword [esp + 0x28]
cmp esi, ebp
sete byte [esp + 0x1f]
cmp eax, edi
jne 0x46e332
cmp dword [esp + 0x20], edi
jne 0x46e5f0
mov al, byte [esp + 0x2e]
test al, al
je 0x46ddb3
cmp ebx, edi
jle 0x46e900
push 0x51d5ec
mov dword [esp + 0x80], 0x51d5ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
push 0xffffffffffffffff
push edx
push eax
mov byte [esp + 0x1f8], 9
call fcn.0041ff6a
mov ebp, eax
test ebp, ebp
jne 0x46e99f
push 0x51d5ec
mov byte [esp + 0x1f0], 6
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x18]
jmp 0x46ddc7
mov al, byte [esp + 0x37]
test al, al
je 0x46ddc7
mov al, byte [esp + 0x73]
test al, al
je 0x46eaca
mov eax, dword [esp + 0x78]
test eax, eax
mov dword [esp + 0x38], 0
je 0x46de15
mov al, byte [esp + 0x200]
test al, al
jne 0x46de15
mov ecx, dword [esp + 0x60]
test byte [ecx + 0xb], 0xf
jne 0x46de15
mov al, byte [esp + 0x1f]
test al, al
jne 0x46de15
mov eax, dword [esp + 0x40]
test eax, eax
jge 0x46de15
mov al, byte [esp + 0x37]
test al, al
jne 0x46de15
mov edx, dword [esp + 0x30]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x46dfbc
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x60]
push 0xffffffffffffffff
push eax
push ecx
mov ecx, esi
call fcn.0041ff6a
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x7c], ebp
jne 0x46dee4
mov eax, dword [esp + 0x40]
test eax, eax
jge 0x46ded7
mov al, byte [esp + 0x1f]
test al, al
mov eax, 0x4efd50
jne 0x46de57
mov eax, dword [esp + 0x18]
mov cl, byte [esp + 0x1f]
xor edx, edx
test cl, cl
setne dl
mov ecx, esi
dec edx
and edx, ebx
push edx
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x3c]
push eax
call fcn.0041fe9c
mov ebp, eax
mov eax, dword [esp + 0x98]
test eax, eax
je 0x46ded3
test ebp, ebp
je 0x46ded7
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp + 8]
mov esi, eax
lea eax, [esi + esi + 4]
push ecx
call fcn.00449190
add esp, 4
test eax, eax
mov dword [ebp + 8], eax
je 0x46dead
mov word [eax + esi*2 + 2], 0
mov edi, dword [ebp + 8]
lea eax, [esi + esi]
mov esi, dword [esp + 0x98]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
mov word [eax + ecx], 0
test ebp, ebp
jne 0x46dee4
mov dword [esp + 0x38], 1
jmp 0x46dfbc
mov eax, dword [esp + 0x40]
test eax, eax
jl 0x46df17
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 4]
mov bl, al
mov bh, bl
and ecx, 0x3fffffff
mov edx, ecx
shr ecx, 2
mov eax, ebx
shl eax, 0x10
mov ax, bx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x46dfbc
mov al, byte [esp + 0x37]
test al, al
jne 0x46dfbc
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x46df3b
cmp dword [eax + 0xc], 0xfffff000
jge 0x46df3b
mov dword [eax + 4], 0
mov cl, byte [esp + 0x1f]
test cl, cl
je 0x46df62
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xb0]
mov dword [ecx], eax
mov ecx, dword [esp + 0xac]
mov edx, dword [ebp + 4]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [ebp + 4], eax
jmp 0x46dfb9
test eax, eax
je 0x46dfbc
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x18]
lea edi, [ebx + 1]
shr edi, 1
lea eax, [edi + edi + 4]
push ecx
call fcn.00449190
add esp, 4
test eax, eax
mov dword [ebp + 4], eax
je 0x46df8d
mov word [eax + edi*2 + 2], 0
mov edx, dword [ebp + 4]
mov word [edx + edi*2], 0
mov ecx, dword [ebp + 4]
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov word [ecx + eax*2], 0
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0xc], ebx
mov eax, dword [esp + 0x84]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
xor edi, edi
cmp eax, edi
mov eax, dword [esp + 0x48]
jle 0x46eba6
cmp eax, edi
je 0x46dfe8
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x46dffe
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x50]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46e018
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov esi, dword [esp + 0xa8]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0xb4]
push esi
push esi
push ecx
dec edx
push eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x40], eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov edi, dword [esp + 0xac]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xcc]
push edi
push edx
push eax
mov dword [esp + 0x34], eax
call fcn.004468e0
add esp, 0x1c
inc esi
inc edi
mov dword [esp + 0x9c], edi
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
mov dword [esp + 0xa8], esi
xor ebp, ebp
jmp 0x46d792
mov eax, dword [esp + 0x10]
cmp eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46e0a6
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov eax, dword [esp + 0x44]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46e0c0
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov edx, dword [esp + 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x46e0e0
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x46e0fa
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, 0x80070057
jmp 0x46ec3c
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
push edi
push 0xffffffffffffffff
push 0x4efd50
push eax
call fcn.0041fe9c
or ebx, 0x80000000
mov dword [eax + 0xc], ebx
mov ecx, dword [eax + 4]
cmp ecx, edi
mov dword [eax + 4], esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46e141
add ecx, 0xfffffff8
push ecx
mov ecx, dword [0x51d3c8]
push edi
push ecx
call esi
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x46e157
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x44]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46e170
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov ecx, dword [esp + 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x46e191
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x46eb9f
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
xor eax, eax
jmp 0x46ec3c
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46e1d1
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebp
push ecx
call esi
mov eax, dword [esp + 0x44]
cmp eax, ebp
mov dword [esp + 0x10], ebp
je 0x46e1eb
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebp
push edx
call esi
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x46e20c
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebp
push ecx
call esi
mov eax, dword [esp + 0x3c]
cmp eax, ebp
mov dword [esp + 0x24], ebp
je 0x46e226
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebp
push edx
call esi
mov eax, 0x80070057
jmp 0x46ec3c
mov eax, dword [esp + 0x10]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46e24c
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push 0
push eax
call esi
mov eax, dword [esp + 0x44]
test eax, eax
mov dword [esp + 0x10], 0
je 0x46e26b
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
mov edx, dword [esp + 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x46e28c
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push 0
push eax
call esi
mov eax, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x24], 0
je 0x46eb9f
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push ecx
call esi
xor eax, eax
jmp 0x46ec3c
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
xor edi, edi
cmp eax, edi
je 0x46e2d4
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x44]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46e2ed
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov ecx, dword [esp + 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x46e30e
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x46eb9f
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
xor eax, eax
jmp 0x46ec3c
push 2
mov dword [esp + 0x5c], esi
mov dword [esp + 0x44], edi
call fcn.00449130
add esp, 4
cmp eax, edi
mov dword [esp + 0x40], eax
je 0x46e34f
mov word [eax], di
push 0x2c
push 0x3a
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0xb0]
lea edx, [esp + 0x64]
push edx
mov byte [esp + 0x1fc], 8
call fcn.0043de70
mov eax, dword [esp + 0x40]
cmp word [eax], di
jne 0x46e396
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov dword [esp + 0x40], edi
jmp 0x46eb0e
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x5c]
xor edi, edi
push eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
call fcn.0044cd70
add esp, 8
test eax, eax
jle 0x46e3ec
mov ecx, dword [esp + 0x58]
cmp ecx, edi
je 0x46e3e5
mov ax, word [ecx]
cmp ax, 9
jb 0x46e3d6
cmp ax, 0xd
jbe 0x46e3dc
cmp ax, 0x20
jne 0x46e3e5
add ecx, 2
mov dword [esp + 0x58], ecx
jmp 0x46e3c7
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
push 0xffffffffffffffff
push edx
lea esi, [edi + ecx]
mov ecx, dword [esp + 0x68]
push eax
mov word [esp + 0x110], 0
call fcn.0041ff6a
xor ecx, ecx
test eax, eax
mov ebp, 1
je 0x46e426
mov ecx, dword [eax + 0xc]
and ecx, 0x3fffffff
xor ebx, ebx
cmp ecx, esi
jl 0x46e51f
mov ecx, dword [esp + 0x20]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0xa0]
mov edx, ecx
add esi, edi
shr ecx, 2
lea edi, [esp + 0xcc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
xor ebp, ebp
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
je 0x46e480
fld dword [esp + 0xcc]
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0x10c]
push 0x4fa1b4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x46e51c
cmp dword [esp + 0x94], ebx
je 0x46e4ab
fld qword [esp + 0xcc]
sub esp, 8
fstp qword [esp]
lea ecx, [esp + 0x10c]
push 0x4fa1ac
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x46e51c
cmp dword [esp + 0x64], ebx
je 0x46e4d3
fld qword [esp + 0xcc]
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x10c]
push 0x4fa1ac
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x46e51c
cmp dword [esp + 0x28], 0x64
jne 0x46e4fa
mov eax, dword [esp + 0xcc]
push eax
lea ecx, [esp + 0x108]
push str.0x_p
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x46e51f
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
push edx
push eax
push ecx
lea edx, [esp + 0x110]
push edx
call fcn.004a4880
add esp, 0x10
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x104]
push eax
push ecx
mov ecx, dword [esp + 0x68]
call fcn.00448be0
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46e551
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebx
push edx
call esi
mov eax, dword [esp + 0x48]
cmp eax, ebx
mov dword [esp + 0x40], ebx
je 0x46e56a
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push ebx
push eax
call esi
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x46e580
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebx
push ecx
call esi
mov eax, dword [esp + 0x50]
cmp eax, ebx
mov dword [esp + 0x10], ebx
je 0x46e59a
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebx
push edx
call esi
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x46e5af
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push ebx
push eax
call esi
mov ecx, dword [esp + 0x4c]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x46e5d0
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebx
push edx
call esi
mov eax, dword [esp + 0x3c]
cmp eax, ebx
mov dword [esp + 0x24], ebx
je 0x46e5e9
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push ebx
push eax
call esi
mov eax, ebp
jmp 0x46ec3c
mov eax, dword [esp + 0xa0]
fld qword [0x4f7808]
cmp eax, edi
fstp qword [esp + 0x7c]
mov dword [esp + 0x28], esi
je 0x46e62b
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.0044cbe0
fld qword [esp + 0x84]
fstp dword [esp + 0xd4]
add esp, 8
jmp 0x46e6a4
cmp dword [esp + 0x94], edi
je 0x46e656
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.0044cbe0
fld qword [esp + 0x84]
fstp qword [esp + 0xd4]
add esp, 8
jmp 0x46e6a4
cmp dword [esp + 0x64], edi
je 0x46e67e
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.0044cbe0
fld qword [esp + 0x84]
fstp qword [esp + 0xd4]
add esp, 8
jmp 0x46e6a4
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.0044cd70
add esp, 8
test eax, eax
jle 0x46e6a4
lea eax, [esp + 0x28]
push eax
call fcn.00443850
add esp, 4
mov ecx, dword [esp + 0x28]
cmp word [ecx], di
mov dword [esp + 0x54], edi
je 0x46e715
lea edx, [esp + 0x88]
mov ebp, ecx
push edx
lea eax, [esp + 0x2c]
add ebp, 2
push eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
call fcn.0044cd70
add esp, 8
test eax, eax
jle 0x46e715
mov ecx, dword [esp + 0x28]
cmp ecx, edi
je 0x46e70a
lea esp, [esp]
mov ax, word [ecx]
cmp ax, 9
jb 0x46e6ff
cmp ax, 0xd
jbe 0x46e705
cmp ax, 0x20
jne 0x46e70a
add ecx, 2
jmp 0x46e6f0
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x60]
push 0xffffffffffffffff
lea ebp, [edx + eax]
mov edx, dword [esp + 0x34]
push ecx
push edx
mov ecx, edi
call fcn.0041ff6a
mov ebx, eax
xor esi, esi
cmp ebx, esi
jne 0x46e806
mov eax, dword [esp + 0x30]
push esi
push 0xffffffffffffffff
push 0x4efd50
push eax
mov ecx, edi
call fcn.0041fe9c
mov ebx, eax
cmp ebx, esi
jne 0x46e806
mov eax, dword [esp + 0x48]
cmp eax, esi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46e77d
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push esi
push ecx
call edi
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x46e793
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push esi
push edx
call edi
mov eax, dword [esp + 0x50]
cmp eax, esi
mov dword [esp + 0x10], esi
je 0x46e7ac
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push esi
push eax
call edi
mov eax, dword [esp + 0x44]
cmp eax, esi
je 0x46e7c2
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push esi
push ecx
call edi
mov edx, dword [esp + 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x46e7e2
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push esi
push eax
call edi
mov eax, dword [esp + 0x3c]
cmp eax, esi
mov dword [esp + 0x24], esi
je 0x46e7fc
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push esi
push ecx
call edi
mov eax, 1
jmp 0x46ec3c
mov ecx, dword [ebx + 0xc]
mov edi, ebp
sub edi, ecx
cmp edi, esi
jle 0x46e870
lea eax, [ebp + 1]
cdq
sub eax, edx
mov edx, dword [ebx + 4]
mov esi, eax
sar esi, 1
lea eax, [esi + esi + 6]
push edx
call fcn.00449190
add esp, 4
test eax, eax
mov dword [ebx + 4], eax
je 0x46e839
mov word [eax + esi*2 + 4], 0
mov edx, dword [ebx + 4]
mov ecx, edi
mov edi, dword [ebx + 0xc]
add edi, edx
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx + 4]
mov word [eax + esi*2 + 2], 0
mov ecx, dword [ebx + 4]
mov word [ecx + esi*2], 0
mov edx, dword [ebx + 4]
mov byte [edx + ebp], 0
mov dword [ebx + 0xc], ebp
mov ecx, dword [esp + 0x20]
mov edi, dword [ebx + 4]
mov ebp, dword [esp + 0x54]
mov eax, ecx
shr ecx, 2
add edi, ebp
lea esi, [esp + 0xcc]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x48]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
cmp eax, edi
je 0x46e8b0
mov edx, dword [0x51d3c8]
mov ecx, eax
add ecx, 0xfffffff8
push ecx
push edi
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x46e8c9
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x50]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46e8e9
mov edx, dword [0x51d3c8]
mov ecx, eax
add ecx, 0xfffffff8
push ecx
push edi
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x44]
cmp eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46eb65
jmp 0x46eb57
cmp ebp, edi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46e918
mov edx, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push edi
push edx
call esi
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x46e92d
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov eax, dword [esp + 0x50]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46e947
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x44]
cmp eax, edi
je 0x46e95d
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x46e97e
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x46e998
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
xor eax, eax
jmp 0x46ec3c
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov esi, eax
and esi, 0x3fffffff
test eax, eax
setl al
test al, al
mov dword [esp + 0x54], esi
mov dword [esp + 0x90], ecx
mov byte [esp + 0x2f], al
je 0x46e9cc
mov dword [ebp + 4], 0
lea eax, [esi + ebx]
mov dword [esp + 0x7c], eax
cdq
sub eax, edx
mov edx, dword [ebp + 4]
mov edi, eax
sar edi, 1
lea eax, [edi + edi + 6]
push edx
call fcn.00449190
add esp, 4
test eax, eax
mov dword [ebp + 4], eax
je 0x46e9f8
mov word [eax + edi*2 + 4], 0
mov eax, dword [ebp + 4]
mov word [eax + edi*2 + 2], 0
mov ecx, dword [ebp + 4]
mov word [ecx + edi*2], 0
mov cl, byte [esp + 0x2e]
cmp cl, 1
mov eax, dword [ebp + 4]
mov dword [esp + 0x64], eax
jne 0x46ea5c
mov al, byte [esp + 0x2f]
test al, al
je 0x46ea40
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x64]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x18]
mov ecx, ebx
lea edi, [eax + edx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x46eaab
cmp cl, 2
jne 0x46eab0
mov cl, byte [esp + 0x2f]
test cl, cl
je 0x46ea8b
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x90]
mov eax, ecx
shr ecx, 2
lea edi, [edx + ebx]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x46ea98
push esi
push eax
add eax, ebx
push eax
call fcn.004b3b10
add esp, 0xc
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x64]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x7c]
push 0x51d5ec
mov dword [ebp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebp, dword [esp + 0x48]
xor edi, edi
jmp 0x46eb08
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x30]
push 0xffffffffffffffff
push ecx
mov ecx, dword [esp + 0x68]
push edx
call fcn.0041ff6a
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x46eb08
cmp dword [esi + 0xc], 0xfffff000
jge 0x46eaf8
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x46eb08
push 0x4efd50
lea ecx, [esi + 4]
call fcn.00456630
mov dword [esi + 0xc], edi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp ebp, edi
je 0x46eb20
mov ecx, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push edi
push ecx
call esi
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x46eb36
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x50]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46eb4f
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov eax, dword [esp + 0x44]
cmp eax, edi
je 0x46eb65
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov edx, dword [esp + 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x46eb85
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x46eb9f
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
xor eax, eax
jmp 0x46ec3c
cmp eax, edi
je 0x46ebb8
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x46ebcd
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
mov eax, dword [esp + 0x50]
cmp eax, edi
mov dword [esp + 0x10], edi
je 0x46ebe7
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x44]
cmp eax, edi
je 0x46ebfd
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x46ec1e
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x3c]
cmp eax, edi
mov dword [esp + 0x24], edi
je 0x46ec38
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1e4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1e0
ret 0x10