Function at 0x46d0f0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x612c80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x37c8
call fcn.005de290
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
test esi, esi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 0
je 0x46f21b
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x7d0
jae 0x46f21b
push 0x6beef4
push esi
call fcn.005de210
add esp, 8
test eax, eax
jne 0x46d16e
push 0x6beed8
push esi
call fcn.005de210
add esp, 8
test eax, eax
je 0x46d32b
lea ecx, [ebp - 0x1f48]
call fcn.00535780
push 0
push esi
lea ecx, [ebp - 0x1f48]
mov byte [ebp - 4], 1
call fcn.00535f30
test eax, eax
je 0x46d31c
mov al, 0x61
mov cl, 0x7b
mov byte [ebp - 0x92], al
mov byte [ebp - 0x8e], al
mov byte [ebp - 0x88], al
mov byte [ebp - 0x81], al
mov byte [ebp - 0x91], cl
mov byte [ebp - 0x8c], cl
lea eax, [ebp - 0x94]
mov bl, 0x6a
mov dl, 0x60
mov cl, 0x6e
push eax
mov byte [ebp - 0x94], 0x21
mov byte [ebp - 0x93], 0x66
mov byte [ebp - 0x90], bl
mov byte [ebp - 0x8f], 0x7d
mov byte [ebp - 0x8d], bl
mov byte [ebp - 0x8b], 0x6b
mov byte [ebp - 0x8a], dl
mov byte [ebp - 0x89], 0x78
mov byte [ebp - 0x87], 0x63
mov byte [ebp - 0x86], dl
mov byte [ebp - 0x85], cl
mov byte [ebp - 0x84], 0x6b
mov byte [ebp - 0x83], 0x62
mov byte [ebp - 0x82], cl
mov byte [ebp - 0x80], cl
mov byte [ebp - 0x7f], 0x68
mov byte [ebp - 0x7e], bl
mov byte [ebp - 0x7d], 0x7d
mov byte [ebp - 0x7c], 0x21
mov byte [ebp - 0x7b], 0x6c
mov byte [ebp - 0x7a], dl
mov byte [ebp - 0x79], 0x62
mov byte [ebp - 0x78], 0
call fcn.005b5ee0
mov eax, dword [0x6e7b6c]
add esp, 4
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x94]
lea edx, [ebp - 0x38]
push ecx
push 0x6beed0
push edx
mov byte [ebp - 4], 3
call fcn.005f368b
add esp, 0xc
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0x1c]
push eax
push 0x6beec4
push ecx
call fcn.005f368b
mov edi, dword [ebp - 0x38]
add esp, 0xc
lea eax, [ebp - 0x1738]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x46d2bd
test cl, cl
je 0x46d2b9
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x46d2bd
add eax, 2
add edi, 2
test cl, cl
jne 0x46d295
xor eax, eax
jmp 0x46d2c2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x46d36e
mov edi, dword [ebp - 0x1c]
lea eax, [ebp - 0x1738]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x46d2fb
test cl, cl
je 0x46d2f7
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x46d2fb
add eax, 2
add edi, 2
test cl, cl
jne 0x46d2d3
xor eax, eax
jmp 0x46d300
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x46d36e
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.005fa859
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 1
call fcn.005fa859
lea ecx, [ebp - 0x1f48]
mov byte [ebp - 4], 0
call fcn.005357d0
mov ecx, dword [ebp - 0x18]
xor ebx, ebx
mov eax, dword [ecx + 0x2e8]
test eax, eax
mov dword [ebp - 0x68], eax
jle 0x46d94f
mov ecx, dword [ecx + 0x1c8]
mov edx, dword [ecx + 8]
dec edx
xor eax, eax
cmp eax, edx
jg 0x46d94f
mov edi, dword [ecx + 4]
mov esi, eax
shl esi, 4
mov esi, dword [esi + edi]
mov edi, dword [ebp - 0x68]
cmp dword [esi + 0x478], edi
je 0x46d3b6
inc eax
jmp 0x46d34d
mov ecx, dword [ebp - 0x18]
push esi
call fcn.0045ea30
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.005fa859
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 1
call fcn.005fa859
lea ecx, [ebp - 0x1f48]
mov byte [ebp - 4], 0
call fcn.005357d0
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
test eax, eax
jl 0x46d94f
mov ecx, dword [ecx + 4]
shl eax, 4
mov ebx, dword [eax + ecx]
test ebx, ebx
je 0x46d94f
mov eax, dword [ebx + 0x148]
mov ecx, dword [ebx + 0x14c]
mov edx, eax
or edx, ecx
je 0x46d3ef
cmp eax, dword [ebp + 0x64]
jne 0x46d3ef
cmp ecx, dword [ebp + 0x68]
je 0x46d47c
mov eax, dword [ebx + 0x310]
xor edi, edi
cmp eax, 4
jne 0x46d94f
mov eax, dword [ebx + 0x308]
test eax, eax
je 0x46d94f
cmp dword [ebx + 0x318], 0x10
jne 0x46d94f
mov eax, dword [0x6e7b6c]
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x1c]
push edi
push ecx
lea ecx, [ebx + 0x20]
mov byte [ebp - 4], 4
call fcn.00579ad0
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x1c]
push 0x6c2a68
push esi
push edx
call fcn.0046cbd0
add esp, 0xc
test eax, eax
je 0x46d468
mov eax, dword [ebp - 0x1c]
push 0x6c2a60
push esi
push eax
call fcn.0046cbd0
add esp, 0xc
test eax, eax
je 0x46d468
mov edi, 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call fcn.005fa859
test edi, edi
je 0x46d952
mov ecx, dword [0x6e7b6c]
mov dword [ebp + 0x20], ecx
lea esi, [ebx + 0x20]
lea edx, [ebp + 0x20]
push 0
push edx
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.00579ad0
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 0x20]
push ecx
push edx
push eax
mov ecx, 0x6ec7f8
call fcn.00431ae0
mov edx, dword [ebp + 0x54]
mov eax, dword [ebx + 0x130]
mov ecx, dword [ebx + 0x12c]
push edx
push eax
mov eax, dword [ebp + 0x50]
push eax
push ecx
mov ecx, 0x6ec7e8
call fcn.00431ae0
mov edx, dword [ebp + 0x80]
mov eax, dword [ebx + 0x15c]
mov ecx, dword [ebx + 0xe8]
push edx
push eax
mov eax, dword [ebp + 0x78]
push eax
push ecx
mov ecx, 0x6ec7d8
call fcn.00431ae0
mov edx, dword [ebp + 0x2c]
test edx, edx
je 0x46d513
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46d513
push edx
mov ecx, ebx
call fcn.005abc90
lea ecx, [ebp - 0x1f48]
call fcn.00535780
mov ecx, dword [ebp + 0x6c]
mov edx, dword [ebp + 0xc]
push ecx
push edx
lea ecx, [ebp - 0x1f48]
mov byte [ebp - 4], 6
call fcn.00535f30
test eax, eax
jne 0x46d56c
lea ecx, [ebp - 0x1f48]
mov byte [ebp - 4], 5
call fcn.005357d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0
call fcn.005fa859
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
push 1
push ebx
lea ecx, [ebp - 0x1f48]
call fcn.00536f50
test eax, eax
je 0x46d5b1
lea ecx, [ebp - 0x1f48]
mov byte [ebp - 4], 5
call fcn.005357d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0
call fcn.005fa859
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
mov edx, dword [ebp - 0x1f28]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46d5cf
mov eax, dword [ebp - 0x1f20]
push eax
push edx
jmp 0x46d5d3
push 0
push 0
mov ecx, ebx
call fcn.005a91a0
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x46d5ea
push eax
call fcn.005f6c85
add esp, 4
mov eax, dword [ebp + 0x30]
test eax, eax
jne 0x46d5fa
mov dword [esi + 0x1c], 0
jmp 0x46d65a
mov edi, dword [ebp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x46d60e
mov dword [esi + 0x1c], eax
jmp 0x46d65a
mov edi, dword [ebp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.005f6c5c
mov edx, eax
add esp, 4
test edx, edx
mov dword [esi + 0x1c], edx
jne 0x46d63a
push 0x6c1ae4
mov ecx, esi
call fcn.005b69d0
jmp 0x46d65a
mov edi, dword [ebp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x34]
test esi, esi
je 0x46d68b
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46d68b
push esi
lea ecx, [ebx + 0x190]
push 0x6bc090
push ecx
call fcn.005f368b
add esp, 0xc
mov byte [ebx + 0x18c], 1
mov eax, dword [ebp + 0x74]
test ah, 2
je 0x46d6c3
test esi, esi
je 0x46d6a5
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x46d6c3
push 0x6ec0c8
lea ecx, [ebx + 0x190]
call fcn.005fa9e2
mov byte [ebx + 0x18c], 1
mov byte [ebx + 0x32b], 1
push 0
call fcn.005df989
mov edx, dword [ebp + 0x8c]
mov ecx, dword [ebp + 0x84]
mov dword [ebx + 0x150], eax
mov eax, dword [ebp + 0x88]
push edx
mov edx, dword [ebp + 0x80]
push eax
mov eax, dword [ebp + 0x7c]
push ecx
mov ecx, dword [ebp + 0x78]
push edx
mov edx, dword [ebp + 0x5c]
push eax
mov eax, dword [ebp + 0x58]
push ecx
mov ecx, dword [ebp + 0x54]
push edx
mov edx, dword [ebp + 0x50]
push eax
push ecx
push edx
push ebx
call fcn.0046c9d0
mov eax, dword [ebx + 0x478]
add esp, 0x30
lea ecx, [ebx + 0x20]
push eax
call fcn.005b96b0
mov eax, dword [ebp - 0x18]
push 0x6ec0c8
lea ecx, [eax + 0x2ec]
mov dword [eax + 0x2e8], 0
call fcn.005fa9e2
cmp dword [ebx + 0x310], 4
jne 0x46d8ac
mov eax, dword [ebp + 0x10]
cmp eax, 4
je 0x46d757
cmp eax, 0x10
jne 0x46d8ac
mov eax, dword [ebx + 0x308]
test eax, eax
je 0x46d8ac
lea ecx, [ebp - 0x37d8]
call fcn.00535780
mov ecx, dword [0x6e7b6c]
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp + 0x98]
lea edx, [ebp + 0xc]
push edx
push 0x6bed24
push eax
mov byte [ebp - 4], 8
call fcn.00456870
mov ecx, dword [ebp + 0x6c]
mov edx, dword [ebp + 0xc]
add esp, 0xc
push ecx
push edx
lea ecx, [ebp - 0x37d8]
call fcn.00535f30
test eax, eax
je 0x46d891
mov eax, dword [ebx + 0x308]
push 1
push eax
lea ecx, [ebp - 0x37d8]
call fcn.00536f50
test eax, eax
jne 0x46d891
mov edx, dword [ebp + 0x2c]
test edx, edx
je 0x46d7eb
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46d7eb
mov ecx, dword [ebx + 0x308]
push edx
call fcn.005abc90
mov esi, dword [ebx + 0x308]
add esi, 0x20
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x46d804
push eax
call fcn.005f6c85
add esp, 4
mov eax, dword [ebp + 0x30]
test eax, eax
jne 0x46d814
mov dword [esi + 0x1c], 0
jmp 0x46d874
mov edi, dword [ebp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x46d828
mov dword [esi + 0x1c], eax
jmp 0x46d874
mov edi, dword [ebp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.005f6c5c
mov edx, eax
add esp, 4
test edx, edx
mov dword [esi + 0x1c], edx
jne 0x46d854
push 0x6c1ae4
mov ecx, esi
call fcn.005b69d0
jmp 0x46d874
mov edi, dword [ebp + 0x30]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebx + 0x318], 0x10
jne 0x46d891
mov ecx, dword [ebx + 0x308]
mov byte [ebx + 0x189], 1
mov byte [ecx + 0x189], 1
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 7
call fcn.005fa859
lea ecx, [ebp - 0x37d8]
mov byte [ebp - 4], 6
call fcn.005357d0
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebx + 0x478]
push ebx
mov al, byte [esi + 0x12e4]
test al, al
je 0x46d8d0
mov edx, dword [esi + 0x1c]
push 0x1468
push 0x111
push edx
jmp 0x46d8de
mov eax, dword [esi + 0x1c]
push 0x1431
push 0x111
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [esi + 0x12e0]
test eax, eax
je 0x46d91c
mov ecx, dword [eax + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46d912
mov edx, dword [esi + 0x12e0]
push 0
push 0
push 0x10
mov eax, dword [edx + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [esi + 0x12e0], 0
lea ecx, [ebp - 0x1f48]
mov byte [ebp - 4], 5
call fcn.005357d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0
call fcn.005fa859
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
mov esi, dword [ebp + 0xc]
push 7
push 0x6bc0fc
push esi
call fcn.005e0470
add esp, 0xc
test eax, eax
jne 0x46d96d
mov esi, 1
jmp 0x46d9dd
push 7
push 0x6bc0e8
push esi
call fcn.005e0470
add esp, 0xc
test eax, eax
jne 0x46d988
mov esi, 4
jmp 0x46d9dd
push 7
push 0x6bc110
push esi
call fcn.005e0470
add esp, 0xc
test eax, eax
jne 0x46d9a3
mov esi, 5
jmp 0x46d9dd
push 8
push 0x6bc0f0
push esi
call fcn.005e0470
add esp, 0xc
test eax, eax
jne 0x46d9be
mov esi, 2
jmp 0x46d9dd
mov ecx, dword [ebp + 0xc]
push 6
push 0x6bc0e0
push ecx
call fcn.005e0470
mov esi, eax
add esp, 0xc
neg esi
sbb esi, esi
and esi, 0xfffffffd
add esi, 3
xor ecx, ecx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x6c], ecx
mov word [ebp - 0x70], cx
mov al, byte [ebp + 0x14]
mov byte [ebp - 4], 9
test al, al
jne 0x46db06
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x2e8], ecx
je 0x46da0e
cmp ebx, ecx
jne 0x46db06
cmp esi, 4
je 0x46da31
cmp esi, 5
je 0x46da31
mov edx, dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x2c]
push edx
mov edx, dword [ebp + 0xc]
push ecx
mov ecx, dword [eax + 0x1c8]
push edx
call fcn.00487990
jmp 0x46da3c
mov ecx, dword [eax + 0x1c8]
call fcn.00487980
mov edi, eax
test edi, edi
jl 0x46db06
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.00478f40
test eax, eax
jne 0x46daa4
push eax
push eax
push eax
push 1
push 0x6ec0c8
push 0x6ec0c8
push 0x6ec0c8
push 0x6ec0c8
push 0x6ec0c8
mov ecx, 0x6ec808
call fcn.004e57a0
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0
call fcn.00401070
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
cmp eax, 3
jne 0x46dad5
push edi
mov ecx, ebx
call fcn.004790d0
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0
call fcn.00401070
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
cmp eax, 2
jne 0x46db06
mov ecx, dword [ebp - 0x18]
shl edi, 4
mov edx, dword [ecx + 0x1c8]
mov eax, dword [edx + 4]
mov edi, dword [eax + edi]
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x46db06
mov eax, dword [edi + 0x54]
test eax, eax
jne 0x46dafd
lea eax, [edi + 0x58]
push eax
lea ecx, [ebp - 0x74]
call fcn.004023e0
cmp esi, 4
je 0x46db45
cmp esi, 5
je 0x46db45
mov ecx, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x34]
mov esi, dword [ebp - 0x18]
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 0x30]
push edx
mov edx, dword [ebp + 0x2c]
push 0
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [esi + 0x1c8]
push edx
push eax
call fcn.00487360
mov dword [ebp - 0x1c], eax
jmp 0x46db72
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x50]
mov eax, dword [ebp + 0x48]
mov esi, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp + 0x4c]
push edx
mov edx, dword [ebp + 0x38]
push eax
mov eax, dword [ebp + 0x2c]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
push ecx
mov ecx, dword [esi + 0x1c8]
call fcn.00486c50
mov dword [ebp - 0x1c], eax
test eax, eax
jge 0x46db8b
cmp eax, 0xfffffffe
je 0x46e27e
push 1
push 0x6c2a4c
jmp 0x46e273
mov edx, dword [esi + 0x1c8]
shl eax, 4
mov ecx, dword [edx + 4]
mov esi, dword [ecx + eax]
mov eax, dword [ebp - 0x6c]
test eax, eax
mov dword [ebp - 0x14], esi
je 0x46dbb3
mov edx, dword [ebp - 0x74]
lea ecx, [esi + 0xf4]
push edx
call fcn.004023e0
mov edx, dword [ebp + 0x24]
test edx, edx
je 0x46dbe8
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46dbe8
mov ebx, dword [ebp + 0x28]
test ebx, ebx
je 0x46dbde
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46dbde
push ebx
jmp 0x46dbe0
push 0
push edx
mov ecx, esi
call fcn.005a91a0
mov eax, dword [ebp - 0x18]
push esi
lea ecx, [eax + 0x1d4]
mov dword [ebp - 0x68], ecx
call fcn.00501d80
mov esi, dword [ebp + 0x40]
test esi, esi
je 0x46dca1
test byte [ebp + 0x74], 0x40
jne 0x46dca1
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x46dca1
push esi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46dca1
mov ecx, dword [ebp + 0x1c]
push ecx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46dca1
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
call ebx
mov edi, eax
test edi, edi
jle 0x46dca1
mov edx, dword [0x6e7b6c]
mov dword [ebp + 0x40], edx
push edi
lea ecx, [ebp + 0x40]
mov byte [ebp - 4], 0xa
call fcn.005fac26
push 0
push 0
push edi
push eax
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
call ebx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x40]
push ecx
lea ecx, [eax + 0x20]
mov byte [eax + 0x326], 1
call fcn.005bb540
lea ecx, [ebp + 0x40]
mov byte [ebp - 4], 9
call fcn.005fa859
mov eax, dword [ebp + 0x74]
and eax, 0x200
mov dword [ebp + 0x40], eax
je 0x46dce4
mov edi, dword [ebp + 0x34]
test edi, edi
je 0x46dcc1
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x46dce4
mov esi, dword [ebp - 0x14]
push 0x6ec0c8
lea ecx, [esi + 0x190]
call fcn.005fa9e2
mov byte [esi + 0x18c], 1
mov byte [esi + 0x32b], 1
jmp 0x46dce7
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp + 0x3c]
test ebx, ebx
je 0x46ddfe
push ebx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ddfe
mov edx, 0x6bc090
add esi, 0xa6c
test edx, edx
je 0x46ddd1
xor edi, edi
push ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x60], di
call fcn.004023e0
mov ecx, esi
mov byte [ebp - 4], 0xb
call fcn.00401070
push edi
push 0x6bc090
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], edi
mov word [ebp - 0x30], di
call fcn.00402d00
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 0xc
cmp eax, edi
jne 0x46dd5c
lea eax, [ebp - 0x60]
mov edi, dword [ebp - 0x2c]
push eax
call fcn.005de123
lea ebx, [eax + edi + 2]
lea eax, [ebx + ebx]
push eax
call fcn.005f6c5c
mov edi, eax
add esp, 8
test edi, edi
mov dword [esi], edi
je 0x46ddb9
lea ecx, [ebx + ebx]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x64]
call fcn.004023d0
push eax
lea ecx, [ebp - 0x34]
call fcn.004023d0
push eax
mov eax, dword [esi]
push ebx
push eax
call fcn.005de0b3
mov ecx, dword [esi]
push ecx
call fcn.005de123
add esp, 0x14
mov dword [esi + 8], eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xb
call fcn.00401070
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 9
call fcn.00401070
mov edx, dword [ebp + 0x44]
test edx, edx
je 0x46ddfe
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46ddfe
push edx
mov edx, dword [ebp - 0x14]
add edx, 0x34c
push 0x6bc090
push edx
call fcn.005f368b
add esp, 0xc
mov edx, dword [ebp + 0x48]
mov esi, dword [ebp - 0x38]
test edx, edx
je 0x46de3a
cmp esi, 4
je 0x46de3a
cmp esi, 5
je 0x46de3a
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46de3a
mov ebx, dword [ebp - 0x14]
push edx
push 0x6bc090
lea eax, [ebx + 0xf0]
push eax
call fcn.005f368b
add esp, 0xc
jmp 0x46de3d
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp + 0x4c]
test edx, edx
je 0x46de7b
cmp esi, 4
je 0x46de7b
cmp esi, 5
je 0x46de7b
mov esi, dword [ebp + 0x10]
cmp esi, 0x10
je 0x46de7e
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46de7e
push edx
lea ecx, [ebx + 0x128]
push 0x6bc090
push ecx
call fcn.005f368b
add esp, 0xc
jmp 0x46de7e
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x90]
test eax, eax
je 0x46de91
push eax
lea ecx, [ebx + 0x20]
call fcn.005bdc60
mov edx, dword [ebp + 0x8c]
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0x84]
push edx
mov edx, dword [ebp + 0x80]
push eax
mov eax, dword [ebp + 0x7c]
push ecx
mov ecx, dword [ebp + 0x78]
push edx
mov edx, dword [ebp + 0x5c]
push eax
mov eax, dword [ebp + 0x58]
push ecx
mov ecx, dword [ebp + 0x54]
push edx
mov edx, dword [ebp + 0x50]
push eax
push ecx
push edx
push ebx
call fcn.0046c9d0
mov edi, dword [ebp + 0x1c]
add esp, 0x2c
test edi, edi
je 0x46deee
push edi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46deee
push edi
lea ecx, [ebx + 0x11c]
call fcn.004023e0
mov edx, dword [ebp + 0x60]
test edx, edx
je 0x46df18
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46df18
push edx
lea eax, [ebx + 0x13c]
push 0x6bc090
push eax
call fcn.005f368b
add esp, 0xc
mov ecx, dword [ebp + 0x64]
mov edx, dword [ebp + 0x68]
mov dword [ebx + 0x148], ecx
push 0
mov dword [ebx + 0x14c], edx
call fcn.005df989
mov ecx, dword [ebp + 0x74]
mov dword [ebx + 0x150], eax
mov eax, ecx
add esp, 4
and eax, 0x80
mov dword [ebx + 0x16c], ecx
mov dword [ebp + 0x84], eax
je 0x46df59
mov byte [ebx + 0x320], 0
test ch, 0x80
je 0x46df97
mov eax, dword [ebp + 0x94]
test eax, eax
jne 0x46df78
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], al
call fcn.00401070
jmp 0x46f21b
push eax
lea eax, [ebx + 0x300]
push 0x6bc090
push eax
mov dword [ebx + 0x318], 2
call fcn.005f368b
add esp, 0xc
cmp esi, 8
jne 0x46dfa2
mov dword [ebx + 0x318], esi
mov eax, dword [ebp + 0x74]
test ah, 1
je 0x46e200
mov ecx, dword [ebx + 0x28]
push 0x6becf8
push ecx
call fcn.005de210
add esp, 8
test eax, eax
je 0x46e200
mov edx, dword [0x6e7b6c]
mov dword [ebp + 0x78], edx
mov ecx, dword [ebx + 0x20]
lea eax, [ebp + 0x78]
push eax
push ecx
mov byte [ebp - 4], 0xd
call fcn.0046d000
mov edx, dword [ebp + 0x78]
add esp, 8
push 0x6becec
push edx
call fcn.005de4a0
add esp, 8
test eax, eax
je 0x46e02a
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x46e1f4
lea ecx, [ebp + 0x78]
push ecx
push eax
call fcn.0046d000
mov edx, dword [ebp + 0x78]
add esp, 8
push 0x6becec
push edx
call fcn.005de4a0
add esp, 8
test eax, eax
jne 0x46e1f4
mov eax, dword [ebx + 0x28]
push 0x6becf8
push eax
call fcn.005de210
add esp, 8
test eax, eax
je 0x46e1f4
lea ecx, [ebp + 0x64]
lea edx, [ebp - 0x3c]
push ecx
push edx
add eax, 7
push 0x6bece0
push eax
call fcn.005de570
add esp, 0x10
cmp eax, 2
jne 0x46e1f4
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
mov edx, eax
or edx, ecx
jne 0x46e08b
mov edx, dword [ebp + 0x68]
test edx, edx
jl 0x46e1dc
jg 0x46e08b
cmp dword [ebp + 0x64], 0x200000
jbe 0x46e1dc
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x46e1dc
mov edx, dword [0x6e7b6c]
mov dword [ebp + 0x88], edx
mov edx, dword [ebp + 0x68]
mov byte [ebp - 4], 0xe
push edx
mov edx, dword [ebp + 0x64]
push edx
push ecx
push eax
lea eax, [ebp + 0x88]
push 0x6beccc
push eax
call fcn.005f368b
mov ecx, dword [0x6e7b6c]
add esp, 0x18
mov dword [ebp + 0x8c], ecx
mov eax, dword [ebp + 0x68]
xor ecx, ecx
cmp eax, ecx
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
jl 0x46e0fa
jg 0x46e0ee
cmp dword [ebp + 0x64], 0x200000
jbe 0x46e0fa
xor eax, eax
mov dword [ebp + 0x64], 0x200000
mov dword [ebp + 0x68], eax
mov edx, dword [ebp + 0x64]
push eax
push edx
push ecx
push ecx
lea eax, [ebp + 0x8c]
push 0x6beccc
push eax
call fcn.005f368b
mov ecx, dword [ebx + 0x28]
add esp, 0x18
push ecx
lea ecx, [ebp + 0x4c]
call fcn.005fa8c7
mov edx, dword [ebp + 0x8c]
mov eax, dword [ebp + 0x88]
push edx
push eax
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], 0x10
call fcn.005f30ae
mov eax, dword [ebx + 0x28]
mov esi, dword [ebp + 0x4c]
test eax, eax
je 0x46e14e
push eax
call fcn.005f6c85
add esp, 4
mov cl, byte [0x6ec0c8]
test esi, esi
mov byte [ebp + 0x83], cl
jne 0x46e164
lea esi, [ebp + 0x83]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.005f6c5c
mov edx, eax
lea ecx, [ebx + 0x20]
add esp, 4
test edx, edx
mov dword [ecx + 8], edx
jne 0x46e190
push 0x6beca0
call fcn.005b69d0
jmp 0x46e1af
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], 0xf
call fcn.005fa859
lea ecx, [ebp + 0x8c]
mov byte [ebp - 4], 0xe
call fcn.005fa859
lea ecx, [ebp + 0x88]
mov byte [ebp - 4], 0xd
call fcn.005fa859
mov esi, dword [ebp + 0x10]
xor eax, eax
mov dword [ebx + 0x318], 0x20
mov dword [ebx + 0x148], eax
mov dword [ebx + 0x14c], eax
lea ecx, [ebp + 0x78]
mov byte [ebp - 4], 9
call fcn.005fa859
cmp esi, 0x80
jne 0x46e213
mov dword [ebx + 0x318], esi
jmp 0x46e718
cmp esi, 0x40
jne 0x46e3d9
mov ecx, dword [ebp - 0x18]
mov dword [ebx + 0x318], esi
mov eax, dword [ecx + 0x2e8]
test eax, eax
jne 0x46e718
mov edx, dword [ebp + 0x6c]
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x34]
push 0
mov esi, dword [ebp - 0x18]
push 0
push 0
push 0
push edx
mov edx, dword [ebp + 0x30]
push eax
mov eax, dword [ebp + 0x2c]
push 0
push ecx
mov ecx, dword [ebp + 0xc]
push edx
push eax
push ecx
mov ecx, dword [esi + 0x1c8]
call fcn.00487360
test eax, eax
jge 0x46e28f
cmp eax, 0xfffffffe
je 0x46e27e
push 1
push 0x6c2a38
lea ecx, [esi + 0x10d0]
call fcn.004ab540
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0
call fcn.00401070
jmp 0x46f21b
mov edx, dword [ebp - 0x18]
shl eax, 4
mov ecx, dword [edx + 0x1c8]
mov edx, dword [ecx + 4]
mov esi, dword [edx + eax]
mov edx, dword [ebp + 0x24]
test edx, edx
je 0x46e2d6
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46e2d6
mov ebx, dword [ebp + 0x28]
test ebx, ebx
je 0x46e2cc
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46e2cc
push ebx
jmp 0x46e2ce
push 0
push edx
mov ecx, esi
call fcn.005a91a0
mov ecx, dword [ebp - 0x68]
push esi
call fcn.00501d80
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x46e317
mov edi, dword [ebp + 0x34]
test edi, edi
je 0x46e2f9
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x46e317
push 0x6ec0c8
lea ecx, [esi + 0x190]
call fcn.005fa9e2
mov byte [esi + 0x18c], 1
mov byte [esi + 0x32b], 1
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x46e341
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46e341
push edx
lea eax, [esi + 0xf0]
push 0x6bc090
push eax
call fcn.005f368b
add esp, 0xc
mov eax, dword [ebp + 0x90]
test eax, eax
je 0x46e354
push eax
lea ecx, [esi + 0x20]
call fcn.005bdc60
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x58]
mov eax, dword [ebp + 0x54]
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 0x50]
push edx
push eax
push ecx
push esi
call fcn.0046c9d0
add esp, 0x2c
push 0
call fcn.005df989
mov edx, dword [ebp + 0x74]
mov dword [esi + 0x150], eax
mov eax, dword [ebp + 0x84]
add esp, 4
test eax, eax
mov dword [esi + 0x16c], edx
je 0x46e3a3
mov byte [esi + 0x320], 0
push 1
push 0
mov ecx, esi
mov dword [esi + 0x318], 0x40
mov byte [esi + 0x31e], 1
call fcn.005ab570
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x308], esi
mov ecx, dword [esi + 0x478]
mov dword [eax + 0x30c], ecx
jmp 0x46e718
cmp esi, 4
je 0x46e3ea
cmp esi, 0x10
jne 0x46e718
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp + 0x98]
lea edx, [ebx + 0x304]
push edi
push 0x6bc090
push edx
call fcn.005f368b
add esp, 0xc
cmp esi, 0x10
mov dword [ebx + 0x310], 4
jne 0x46e468
mov eax, dword [0x6e7b6c]
mov dword [ebp + 0x80], eax
lea ecx, [ebp + 0x80]
mov byte [ebp - 4], 0x11
push ecx
push 0x6bed28
push edi
call fcn.00456870
mov edx, dword [ebp + 0x80]
add esp, 0xc
mov dword [ebx + 0x318], esi
add ebx, 0x300
push edx
push 0x6bc090
push ebx
call fcn.005f368b
add esp, 0xc
lea ecx, [ebp + 0x80]
mov byte [ebp - 4], 9
call fcn.005fa859
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x2e8]
test ecx, ecx
jne 0x46e718
mov ecx, dword [0x6e7b6c]
mov dword [ebp + 0x80], ecx
lea edx, [ebp + 0x80]
mov byte [ebp - 4], 0x12
push edx
push 0x6bed24
push edi
call fcn.00456870
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x38]
add esp, 0xc
mov edx, dword [ebp + 0x34]
mov esi, dword [ebp - 0x18]
push 0
push 0
push 0
push 0
push eax
mov eax, dword [ebp + 0x30]
push ecx
mov ecx, dword [ebp + 0x2c]
push 0
push edx
mov edx, dword [ebp + 0x80]
push eax
push ecx
mov ecx, dword [esi + 0x1c8]
push edx
call fcn.00487360
test eax, eax
jge 0x46e50c
cmp eax, 0xfffffffe
je 0x46e4ec
push 1
push 0x6c2a38
lea ecx, [esi + 0x10d0]
call fcn.004ab540
lea ecx, [ebp + 0x80]
mov byte [ebp - 4], 9
call fcn.005fa859
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0
call fcn.00401070
jmp 0x46f21b
mov ecx, dword [ebp - 0x18]
shl eax, 4
mov edx, dword [ecx + 0x1c8]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 0x24]
test edx, edx
mov esi, dword [ecx + eax]
je 0x46e553
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46e553
mov ebx, dword [ebp + 0x28]
test ebx, ebx
je 0x46e549
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46e549
push ebx
jmp 0x46e54b
push 0
push edx
mov ecx, esi
call fcn.005a91a0
mov ecx, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x14]
push esi
call fcn.00501d80
mov eax, dword [ebp + 0x40]
test eax, eax
je 0x46e599
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x46e57b
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x46e599
push 0x6ec0c8
lea ecx, [esi + 0x190]
call fcn.005fa9e2
mov byte [esi + 0x18c], 1
mov byte [esi + 0x32b], 1
mov edi, dword [ebp + 0x48]
test edi, edi
je 0x46e5c4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x46e5c4
mov edx, dword [ebp + 0x48]
lea eax, [esi + 0xf0]
push edx
push 0x6bc090
push eax
call fcn.005f368b
add esp, 0xc
mov eax, dword [ebp + 0x90]
test eax, eax
je 0x46e5d9
mov ecx, eax
push ecx
lea ecx, [esi + 0x20]
call fcn.005bdc60
mov edx, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp + 0x54]
push 0
push 0
push 0
push 0
push 0
push 0
push edx
mov edx, dword [ebp + 0x50]
push eax
push ecx
push edx
push esi
call fcn.0046c9d0
add esp, 0x2c
push 0
call fcn.005df989
mov dword [esi + 0x150], eax
mov eax, dword [ebp + 0x74]
mov dword [esi + 0x16c], eax
mov eax, dword [ebp + 0x84]
add esp, 4
test eax, eax
je 0x46e628
mov byte [esi + 0x320], 0
mov eax, dword [ebp + 0x10]
mov edi, 0x10
cmp eax, edi
mov dword [esi + 0x310], 4
mov byte [esi + 0x31e], 1
jne 0x46e6ec
mov ecx, dword [0x6e7b6c]
mov dword [ebp + 0x30], ecx
mov eax, dword [ebp + 0x98]
lea edx, [ebp + 0x30]
push edx
push 0x6bed1c
push eax
mov byte [ebp - 4], 0x13
call fcn.00456870
mov ecx, dword [ebp + 0x30]
add esp, 0xc
lea edx, [esi + 0x300]
mov dword [esi + 0x318], edi
push ecx
push 0x6bc090
push edx
call fcn.005f368b
mov eax, dword [ebp + 0xc]
add esp, 0xc
xor edi, edi
push eax
call fcn.0046ced0
push eax
call fcn.0046cf30
add esp, 8
test eax, eax
je 0x46e6a9
mov edi, 1
mov ecx, dword [ebp + 0x80]
push ecx
call fcn.0046ced0
push eax
call fcn.0046cf30
add esp, 8
test eax, eax
je 0x46e6c3
inc edi
test edi, edi
je 0x46e6d1
or dword [ebx + 0x16c], 0x10000
cmp edi, 2
jne 0x46e6e0
or dword [ebx + 0x16c], 0x20000
lea ecx, [ebp + 0x30]
mov byte [ebp - 4], 0x12
call fcn.005fa859
push 1
push 0
mov ecx, esi
call fcn.005ab570
mov dword [ebx + 0x308], esi
mov edx, dword [esi + 0x478]
lea ecx, [ebp + 0x80]
mov dword [ebx + 0x30c], edx
mov byte [ebp - 4], 9
call fcn.005fa859
mov al, byte [ebp + 0x20]
test al, al
je 0x46f192
xor ebx, ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x5c], ebx
mov word [ebp - 0x60], bx
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0x64]
push 1
lea ecx, [edi + 0x698]
push eax
push ecx
mov ecx, esi
mov byte [ebp - 4], 0x14
call fcn.005ad8e0
mov eax, dword [esi + 0xf4]
cmp eax, ebx
jne 0x46e75d
lea eax, [esi + 0xf8]
mov ecx, dword [edi + 0x1c8]
push eax
push 0xffffffffffffffff
lea edx, [ebp - 0x64]
push ebx
push edx
call fcn.00488940
mov esi, dword [ebp - 0x64]
xor eax, eax
cmp esi, ebx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x44], ebx
mov word [ebp - 0x48], bx
je 0x46e7f6
cmp eax, ebx
je 0x46e7f6
push esi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46e7f6
mov eax, dword [ebp - 0x4c]
cmp eax, esi
ja 0x46e7f6
push eax
call fcn.005de123
mov ecx, dword [ebp - 0x4c]
add esp, 4
lea edx, [ecx + eax*2]
cmp edx, esi
jb 0x46e7f6
push esi
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x98], ebx
mov word [ebp - 0x9c], bx
call fcn.004023e0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x15
call fcn.004023d0
push eax
lea ecx, [ebp - 0x4c]
call fcn.004023e0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x14
call fcn.00401070
jmp 0x46e83f
lea ecx, [ebp - 0x4c]
call fcn.00401070
cmp esi, ebx
je 0x46e83f
push esi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46e83f
push esi
call fcn.005de123
lea eax, [eax + eax + 2]
push eax
call fcn.005f6c5c
add esp, 8
cmp eax, ebx
mov dword [ebp - 0x4c], eax
je 0x46e83f
push esi
call fcn.005de123
mov ecx, dword [ebp - 0x4c]
push esi
push ecx
mov dword [ebp - 0x44], eax
call fcn.005de2e9
add esp, 0xc
mov eax, dword [ebp + 0x18]
mov byte [ebp - 4], 0x16
cmp eax, ebx
je 0x46e85a
push eax
call fcn.005de123
add esp, 4
test eax, eax
jne 0x46e85a
mov dword [ebp + 0x18], ebx
mov edi, dword [ebp + 0x1c]
cmp edi, ebx
je 0x46e870
push edi
call fcn.005de123
add esp, 4
test eax, eax
jne 0x46e870
xor edi, edi
cmp dword [ebp + 0x18], ebx
jne 0x46e87d
cmp edi, ebx
je 0x46ef75
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jne 0x46e887
lea eax, [ebp - 0x60]
lea edx, [ebp - 0x4b8]
lea ecx, [ebp - 0x2b8]
push edx
push ecx
lea edx, [ebp - 0x6b8]
lea ecx, [ebp + 0x64]
push edx
push ecx
push eax
call fcn.005deee8
xor eax, eax
add esp, 0x14
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], ebx
mov word [ebp - 0x30], bx
cmp edi, ebx
mov byte [ebp - 4], 0x17
je 0x46e986
cmp eax, ebx
je 0x46e922
push edi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46e922
mov eax, dword [ebp - 0x34]
cmp eax, edi
ja 0x46e922
push eax
call fcn.005de123
mov edx, dword [ebp - 0x34]
add esp, 4
lea eax, [edx + eax*2]
cmp eax, edi
jb 0x46e922
push edi
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x50], ebx
mov word [ebp - 0x54], bx
call fcn.004023e0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x18
call fcn.004023d0
push eax
lea ecx, [ebp - 0x34]
call fcn.004023e0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x17
call fcn.00401070
jmp 0x46e967
lea ecx, [ebp - 0x34]
call fcn.00401070
push edi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46e967
push edi
call fcn.005de123
lea ecx, [eax + eax + 2]
push ecx
call fcn.005f6c5c
add esp, 8
cmp eax, ebx
mov dword [ebp - 0x34], eax
je 0x46e967
push edi
call fcn.005de123
mov edx, dword [ebp - 0x34]
push edi
push edx
mov dword [ebp - 0x2c], eax
call fcn.005de2e9
add esp, 0xc
cmp dword [ebp + 8], ebx
je 0x46eb0f
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x18b], 1
mov byte [eax + 0x329], 1
jmp 0x46eb0f
lea ecx, [ebp - 0x2b8]
test ecx, ecx
je 0x46ea09
cmp eax, ebx
je 0x46ea09
lea edx, [ebp - 0x2b8]
push edx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ea09
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x2b8]
cmp eax, ecx
ja 0x46ea09
push eax
call fcn.005de123
mov edx, dword [ebp - 0x34]
lea ecx, [ebp - 0x2b8]
add esp, 4
lea eax, [edx + eax*2]
cmp eax, ecx
jb 0x46ea09
lea edx, [ebp - 0x2b8]
lea ecx, [ebp - 0x58]
push edx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x50], ebx
mov word [ebp - 0x54], bx
call fcn.004023e0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x19
call fcn.004023d0
push eax
lea ecx, [ebp - 0x34]
call fcn.004023e0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x17
call fcn.00401070
jmp 0x46ea70
lea ecx, [ebp - 0x34]
call fcn.00401070
lea eax, [ebp - 0x2b8]
test eax, eax
je 0x46ea70
lea ecx, [ebp - 0x2b8]
push ecx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ea70
lea edx, [ebp - 0x2b8]
push edx
call fcn.005de123
lea eax, [eax + eax + 2]
push eax
call fcn.005f6c5c
add esp, 8
cmp eax, ebx
mov dword [ebp - 0x34], eax
je 0x46ea70
lea ecx, [ebp - 0x2b8]
push ecx
call fcn.005de123
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x2b8]
push edx
push eax
call fcn.005de2e9
add esp, 0xc
lea ecx, [ebp - 0x4b8]
test ecx, ecx
je 0x46eb0f
lea edx, [ebp - 0x4b8]
push edx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46eb0f
mov eax, dword [ebp - 0x34]
cmp eax, ebx
je 0x46eaa5
push eax
call fcn.005de123
add esp, 4
mov esi, eax
jmp 0x46eaa7
xor esi, esi
lea eax, [ebp - 0x4b8]
push eax
call fcn.005de123
add eax, esi
lea ecx, [eax + eax + 2]
push ecx
call fcn.005f6c5c
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x46eb0f
mov eax, dword [ebp - 0x34]
cmp eax, ebx
je 0x46eae8
push eax
push esi
call fcn.005de2e9
lea edx, [ebp - 0x4b8]
push edx
push esi
call fcn.005de2bf
add esp, 0x10
jmp 0x46eaf8
lea eax, [ebp - 0x4b8]
push eax
push esi
call fcn.005de2e9
add esp, 8
lea ecx, [ebp - 0x34]
call fcn.00401070
push esi
mov dword [ebp - 0x34], esi
call fcn.005de123
add esp, 4
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], eax
mov word [ebp - 0x24], bx
mov ecx, dword [ebp + 0x18]
mov byte [ebp - 4], 0x1a
cmp ecx, ebx
je 0x46ebfd
cmp eax, ebx
mov esi, ecx
je 0x46eb8f
push esi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46eb8f
mov eax, dword [ebp - 0x28]
cmp eax, esi
ja 0x46eb8f
push eax
call fcn.005de123
mov ecx, dword [ebp - 0x28]
add esp, 4
lea edx, [ecx + eax*2]
cmp edx, esi
jb 0x46eb8f
push esi
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x3c], bx
call fcn.004023e0
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 0x1b
cmp eax, ebx
jne 0x46eb78
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x28]
call fcn.004023e0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1a
call fcn.00401070
jmp 0x46ebd4
lea ecx, [ebp - 0x28]
call fcn.00401070
push esi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ebd4
push esi
call fcn.005de123
lea eax, [eax + eax + 2]
push eax
call fcn.005f6c5c
add esp, 8
cmp eax, ebx
mov dword [ebp - 0x28], eax
je 0x46ebd4
push esi
call fcn.005de123
mov ecx, dword [ebp - 0x28]
push esi
push ecx
mov dword [ebp - 0x20], eax
call fcn.005de2e9
add esp, 0xc
cmp dword [ebp + 8], ebx
je 0x46ed6a
mov edx, dword [ebp - 0x14]
cmp edi, ebx
mov byte [edx + 0x328], 1
je 0x46ed6a
mov eax, edx
mov byte [eax + 0x18a], 1
jmp 0x46ed6a
lea ecx, [ebp + 0x64]
test ecx, ecx
je 0x46ec73
cmp eax, ebx
je 0x46ec73
lea edx, [ebp + 0x64]
push edx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ec73
mov eax, dword [ebp - 0x28]
lea ecx, [ebp + 0x64]
cmp eax, ecx
ja 0x46ec73
push eax
call fcn.005de123
mov edx, dword [ebp - 0x28]
lea ecx, [ebp + 0x64]
add esp, 4
lea eax, [edx + eax*2]
cmp eax, ecx
jb 0x46ec73
lea edx, [ebp + 0x64]
lea ecx, [ebp - 0x40]
push edx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x3c], bx
call fcn.004023e0
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 0x1c
cmp eax, ebx
jne 0x46ec5c
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x28]
call fcn.004023e0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1a
call fcn.00401070
jmp 0x46eccb
lea ecx, [ebp - 0x28]
call fcn.00401070
lea eax, [ebp + 0x64]
test eax, eax
je 0x46eccb
lea ecx, [ebp + 0x64]
push ecx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46eccb
lea edx, [ebp + 0x64]
push edx
call fcn.005de123
lea eax, [eax + eax + 2]
push eax
call fcn.005f6c5c
add esp, 8
cmp eax, ebx
mov dword [ebp - 0x28], eax
je 0x46eccb
lea ecx, [ebp + 0x64]
push ecx
call fcn.005de123
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
lea edx, [ebp + 0x64]
push edx
push eax
call fcn.005de2e9
add esp, 0xc
lea ecx, [ebp - 0x6b8]
test ecx, ecx
je 0x46ed6a
lea edx, [ebp - 0x6b8]
push edx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ed6a
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x46ed00
push eax
call fcn.005de123
add esp, 4
mov esi, eax
jmp 0x46ed02
xor esi, esi
lea eax, [ebp - 0x6b8]
push eax
call fcn.005de123
add eax, esi
lea ecx, [eax + eax + 2]
push ecx
call fcn.005f6c5c
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x46ed6a
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x46ed43
push eax
push esi
call fcn.005de2e9
lea edx, [ebp - 0x6b8]
push edx
push esi
call fcn.005de2bf
add esp, 0x10
jmp 0x46ed53
lea eax, [ebp - 0x6b8]
push eax
push esi
call fcn.005de2e9
add esp, 8
lea ecx, [ebp - 0x28]
call fcn.00401070
push esi
mov dword [ebp - 0x28], esi
call fcn.005de123
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x46ed75
mov esi, eax
jmp 0x46ed7b
lea esi, [ebp - 0x24]
lea eax, [ebp - 0x24]
push eax
call fcn.005de123
add esp, 4
cmp word [esi + eax*2 - 2], 0x5c
je 0x46ee22
mov ecx, 0x6bc14c
test ecx, ecx
je 0x46ee22
push ecx
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ee22
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x46edbe
push eax
call fcn.005de123
add esp, 4
mov esi, eax
jmp 0x46edc0
xor esi, esi
push 0x6bc14c
call fcn.005de123
add eax, esi
lea edx, [eax + eax + 2]
push edx
call fcn.005f6c5c
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x46ee22
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x46edfd
push eax
push esi
call fcn.005de2e9
push 0x6bc14c
push esi
call fcn.005de2bf
add esp, 0x10
jmp 0x46ee0b
push 0x6bc14c
push esi
call fcn.005de2e9
add esp, 8
lea ecx, [ebp - 0x28]
call fcn.00401070
push esi
mov dword [ebp - 0x28], esi
call fcn.005de123
add esp, 4
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x28]
cmp esi, ebx
je 0x46ee8d
cmp dword [ebp - 0x4c], ebx
je 0x46ee8d
push esi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ee8d
mov eax, dword [ebp - 0x4c]
cmp eax, esi
ja 0x46ee8d
push eax
call fcn.005de123
mov ecx, dword [ebp - 0x4c]
add esp, 4
lea edx, [ecx + eax*2]
cmp edx, esi
jb 0x46ee8d
push esi
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x50], ebx
mov word [ebp - 0x54], bx
call fcn.004023e0
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 0x1d
cmp eax, ebx
jne 0x46ee76
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x4c]
call fcn.004023e0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1a
call fcn.00401070
jmp 0x46eed6
lea ecx, [ebp - 0x4c]
call fcn.00401070
cmp esi, ebx
je 0x46eed6
push esi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46eed6
push esi
call fcn.005de123
lea eax, [eax + eax + 2]
push eax
call fcn.005f6c5c
add esp, 8
cmp eax, ebx
mov dword [ebp - 0x4c], eax
je 0x46eed6
push esi
call fcn.005de123
mov ecx, dword [ebp - 0x4c]
push esi
push ecx
mov dword [ebp - 0x44], eax
call fcn.005de2e9
add esp, 0xc
mov edi, dword [ebp - 0x34]
cmp edi, ebx
jne 0x46eee4
lea edi, [ebp - 0x30]
cmp edi, ebx
je 0x46ef5d
push edi
call fcn.005de123
add esp, 4
test eax, eax
je 0x46ef5d
mov eax, dword [ebp - 0x4c]
cmp eax, ebx
je 0x46ef05
push eax
call fcn.005de123
add esp, 4
mov esi, eax
jmp 0x46ef07
xor esi, esi
push edi
call fcn.005de123
add eax, esi
lea edx, [eax + eax + 2]
push edx
call fcn.005f6c5c
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x46ef5d
mov eax, dword [ebp - 0x4c]
cmp eax, ebx
je 0x46ef3c
push eax
push esi
call fcn.005de2e9
push edi
push esi
call fcn.005de2bf
add esp, 0x10
jmp 0x46ef46
push edi
push esi
call fcn.005de2e9
add esp, 8
lea ecx, [ebp - 0x4c]
call fcn.00401070
push esi
mov dword [ebp - 0x4c], esi
call fcn.005de123
add esp, 4
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x17
call fcn.00401070
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x16
call fcn.00401070
mov al, byte [ebp + 0x14]
test al, al
je 0x46ef95
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov byte [esi + 0x18b], 1
mov byte [esi + 0x18a], 1
jmp 0x46f0af
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0x4c]
push ebx
mov ecx, dword [edi + 0x1c8]
push eax
push esi
call fcn.00487f60
cmp eax, 2
jne 0x46f0a3
mov ecx, dword [0x6ec8c8]
cmp ecx, ebx
je 0x46efcd
mov edx, dword [esi + 0x478]
push 1
push edx
call fcn.00507bc0
mov ecx, esi
call fcn.005ab960
cmp dword [esi + 0x8d0], ebx
je 0x46efe9
push esi
mov ecx, 0x6ec7d0
call fcn.00435b90
jmp 0x46f00b
cmp esi, ebx
mov byte [ebp - 4], 0x1e
je 0x46f004
mov esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.005a1de0
push esi
call fcn.005f6c85
add esp, 4
mov dword [ebp - 4], 0x16
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov ebx, edx
mov esi, 1
mov edi, dword [eax + 0x1c8]
shl ebx, 4
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
sub eax, edx
dec eax
add ecx, ebx
mov ebx, esi
dec esi
test ebx, ebx
je 0x46f03e
add ecx, 0x10
jmp 0x46f02c
test eax, eax
je 0x46f060
mov ecx, dword [edi + 4]
shl eax, 4
push eax
lea eax, [edx + 1]
shl eax, 4
shl edx, 4
add eax, ecx
add edx, ecx
push eax
push edx
call fcn.005df1c0
add esp, 0xc
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x4c]
dec eax
mov byte [ebp - 4], 0x14
mov dword [edi + 8], eax
call fcn.00401070
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 9
call fcn.00401070
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0
call fcn.00401070
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
cmp dword [ebp + 0x18], ebx
je 0x46f0af
mov byte [esi + 0x18a], 1
push 1
push ebx
mov ecx, esi
call fcn.005ab570
mov eax, dword [ebp - 0x4c]
cmp eax, ebx
jne 0x46f0c3
lea eax, [ebp - 0x48]
push eax
mov ecx, esi
call fcn.005a9330
mov ecx, dword [0x6ec8c8]
cmp ecx, ebx
je 0x46f0e3
mov edx, dword [esi + 0x478]
push edx
push 1
call fcn.00507b80
push 1
push 1
push esi
lea ecx, [edi + 0x4ac]
call fcn.004b3610
mov eax, dword [edi + 0x224]
cmp eax, ebx
je 0x46f105
push eax
mov ecx, edi
call fcn.004708a0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [ebp - 0xb8]
mov ecx, dword [eax + 0x478]
mov eax, dword [edi + 0x194]
mov dword [ebp - 0xb8], 1
mov dword [ebp - 0xb0], ecx
mov eax, dword [eax + 0x1c]
push edx
push 0xffffffffffffffff
push 0x100d
push eax
call esi
cmp eax, ebx
jl 0x46f156
mov ecx, dword [edi + 0x4c8]
push 1
push eax
push 0x1013
push ecx
call esi
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x14
call fcn.00401070
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 9
call fcn.00401070
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0
call fcn.00401070
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
mov edx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x1c]
push edx
mov edx, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov edx, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
mov ecx, dword [ebp - 0x18]
call fcn.00469db0
lea ecx, [ebp - 0x74]
mov esi, eax
mov byte [ebp - 4], 0
call fcn.00401070
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x94
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x94