Function at 0x420190
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xc54
push ebx
push ebp
push esi
mov esi, dword [0x520d48]
push edi
xor edi, edi
cmp esi, edi
jne 0x4201b3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc54
ret
cmp byte [esi], 0
jne 0x4201d1
mov dword [esi + 0x400], edi
mov dword [0x520d48], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc54
ret
mov eax, dword [0x5bd664]
mov ecx, dword [0x520d60]
mov edx, dword [eax]
xor ebx, ebx
cmp ecx, edx
mov dword [esp + 0x20], ebx
je 0x420260
cmp dword [0x4c9fd4], edi
jne 0x420258
cmp dword [0x51fd28], edi
jne 0x420258
call fcn.00428950
mov ebx, eax
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
add ebp, 3
mov edx, 0x9c40
sub edx, ebp
push edx
lea eax, [ebx + ebp]
push eax
push ebx
call fcn.004678c0
mov edi, ebx
sub edi, ebp
lea ecx, [ebp - 2]
mov edx, ecx
shr ecx, 2
add edi, 0x9c40
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov word [ebx + 0x9c3e], bp
mov esi, dword [0x520d48]
mov eax, dword [0x5bd664]
mov ebx, dword [esp + 0x2c]
add esp, 0xc
xor edi, edi
mov ecx, dword [eax]
mov dword [0x520d60], ecx
cmp dword [0x51fd20], edi
jne 0x4202be
cmp dword [0x4c9fd4], edi
jne 0x4202be
mov ecx, dword [eax]
mov edx, dword [esp + 0xc68]
sub ecx, edx
mov dword [eax], ecx
cmp dword [0x51fd20], edi
jne 0x4202a9
cmp dword [0x4c9fd4], edi
jne 0x4202a9
push edi
call fcn.00427d70
push edi
call fcn.00427d70
push edi
push 2
push 0xf7a4c8d8
call fcn.0040fb00
add esp, 0x14
pop edi
pop esi
mov eax, 1
pop ebp
mov dword [0x51fd20], eax
pop ebx
add esp, 0xc54
ret
push 0x8175
push esi
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x4202da
mov dword [0x4cfbfc], 1
mov eax, dword [0x520d48]
push 0x8176
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x4202f7
mov dword [0x4cfbfc], edi
call fcn.0042e1a0
test eax, eax
je 0x4204c6
mov ecx, dword [0x520d48]
push 0x8175
push ecx
call fcn.00467bf5
add esp, 8
test eax, eax
je 0x4203ac
cmp eax, dword [0x520d48]
je 0x4203ac
mov ecx, dword [0x5bd664]
mov esi, dword [ecx]
mov edx, dword [esp + 0xc68]
sub esi, edx
mov dword [ecx], esi
mov edx, dword [0x520d48]
sub eax, edx
mov ecx, eax
mov ebx, ecx
shr ecx, 2
mov esi, edx
lea edi, [esp + 0x464]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [edx + eax]
mov byte [esp + eax + 0x464], 0
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push edx
call fcn.004678c0
lea eax, [esp + 0x470]
push eax
call fcn.00427e70
push 0
push 1
push 0x44a4ff72
call fcn.0040fb00
add esp, 0x1c
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc54
ret
mov ebp, 0x4ae358
mov ecx, dword [ebp]
mov edx, dword [0x520d48]
push ecx
push edx
call fcn.0046712c
mov edx, eax
add esp, 8
test edx, edx
je 0x4203eb
or ecx, 0xffffffff
lea esi, [edx + 2]
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
mov eax, ecx
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ebx, 5
add ebp, 4
cmp ebp, 0x4ae360
jb 0x4203b1
mov dword [esp + 0x20], ebx
mov ebp, 0x4ae360
mov ecx, dword [ebp]
mov edx, dword [0x520d48]
push ecx
push edx
call fcn.0046712c
mov edx, eax
add esp, 8
test edx, edx
je 0x42043a
or ecx, 0xffffffff
lea esi, [edx + 4]
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
mov eax, ecx
shr ecx, 2
lea edi, [edx + 2]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ebx, 6
add ebp, 4
cmp ebp, 0x4ae368
jb 0x4203ff
mov ecx, dword [0x520d48]
push 0x4ae5ac
push ecx
mov dword [esp + 0x28], ebx
call fcn.0046712c
mov edx, eax
add esp, 8
test edx, edx
je 0x420488
or ecx, 0xffffffff
lea esi, [edx + 4]
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
mov edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
or ebx, 1
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x20], ebx
mov eax, dword [0x520d48]
push 0x4ae5a4
push eax
call fcn.0046712c
mov edx, eax
add esp, 8
test edx, edx
je 0x4204c6
or ecx, 0xffffffff
lea esi, [edx + 4]
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
mov edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
or ebx, 2
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x20], ebx
call fcn.0042ea20
test eax, eax
je 0x4204ea
mov eax, dword [0x4cc248]
mov ecx, dword [0x4cc220]
add ecx, eax
cmp dword [0x4cc240], ecx
jge 0x4205df
jmp 0x42050d
mov edx, dword [0x4cc254]
mov esi, dword [0x4cc220]
mov ecx, dword [0x4cc24c]
mov eax, dword [0x4cc244]
sub edx, esi
add edx, ecx
cmp eax, edx
jle 0x4205df
call fcn.00411ba0
test eax, eax
jne 0x420559
mov eax, dword [0x520d48]
push eax
lea ecx, [esp + 0x468]
push str.message_:
push ecx
call fcn.00466e90
add esp, 0xc
call fcn.0042e5d0
test eax, eax
je 0x420549
lea edx, [esp + 0x464]
push edx
call fcn.00410b60
jmp 0x420556
lea eax, [esp + 0x464]
push eax
call fcn.00410810
add esp, 4
mov dword [0x4cc258], 0
call fcn.0042ea20
test eax, eax
mov ecx, dword [0x4cc248]
je 0x42058c
mov edx, dword [0x4cc250]
mov eax, dword [0x4cc24c]
add edx, ecx
mov dword [0x4cc240], edx
mov dword [0x4cc244], eax
jmp 0x42059e
mov edx, dword [0x4cc24c]
mov dword [0x4cc240], ecx
mov dword [0x4cc244], edx
mov eax, dword [0x5bd664]
mov edx, dword [eax]
mov ecx, dword [esp + 0xc68]
sub edx, ecx
mov dword [eax], edx
call fcn.00411ba0
test eax, eax
jne 0x4205be
call fcn.0042dfa0
push 0
push 0
push 0x93b38a0b
call fcn.0040fb00
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc54
ret
mov ebx, dword [0x520d48]
mov ebp, 0x4cc1f8
mov dword [esp + 0x10], ebp
mov byte [esp + 0x64], 0
mov dword [esp + 0x3c], 0
call fcn.00411ba0
test eax, eax
je 0x420621
mov byte [ebx], 0
call fcn.00411bd0
test eax, eax
jne 0x420d53
mov dword [esp + 0x3c], 1
jmp 0x420d53
cmp byte [ebx], 0
je 0x420d53
xor edx, edx
cmp edx, 0x4cc1f8
jne 0x42063d
mov ebp, 0x4ae2e8
mov dword [esp + 0x10], ebp
call fcn.0042e150
test eax, eax
je 0x4207bd
call fcn.0042ea20
test eax, eax
mov eax, dword [ebp + 0x60]
je 0x420710
test eax, eax
je 0x4207bd
mov ecx, dword [ebp + 0x54]
add ecx, eax
cmp dword [ebp + 0x4c], ecx
jne 0x4207bd
mov ax, word [ebx]
mov edx, 0x4ae578
cmp ax, word [edx]
jne 0x4206a3
lea esi, [ebx + 2]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push ebx
call fcn.004678c0
mov dx, word [ebx]
mov ecx, 0x4ae578
add esp, 0xc
cmp dx, word [ecx]
je 0x420680
mov cl, byte [ebx]
mov eax, 0x4ad16c
cmp cl, byte [eax]
jne 0x4206d4
lea esi, [ebx + 1]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push ebx
call fcn.004678c0
mov al, byte [ebx]
mov edx, 0x4ad16c
mov cl, byte [edx]
add esp, 0xc
cmp al, cl
je 0x4206b1
mov dx, word [ebx]
mov ecx, 0x4ae578
cmp dx, word [ecx]
jne 0x4207bd
lea esi, [ebx + 2]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push ebx
call fcn.004678c0
mov cx, word [ebx]
mov eax, 0x4ae578
add esp, 0xc
cmp cx, word [eax]
je 0x4206e8
jmp 0x4207bd
test eax, eax
je 0x4207bd
mov edx, dword [ebp + 0x50]
add edx, eax
cmp dword [ebp + 0x48], edx
jne 0x4207bd
mov cx, word [ebx]
mov eax, 0x4ae578
cmp cx, word [eax]
jne 0x420759
lea esi, [ebx + 2]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push ebx
call fcn.004678c0
mov ax, word [ebx]
mov edx, 0x4ae578
add esp, 0xc
cmp ax, word [edx]
je 0x420736
mov dl, byte [ebx]
mov ecx, 0x4ad16c
cmp dl, byte [ecx]
jne 0x42078a
lea esi, [ebx + 1]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push ebx
call fcn.004678c0
mov cl, byte [ebx]
mov eax, 0x4ad16c
mov dl, byte [eax]
add esp, 0xc
cmp cl, dl
je 0x420767
mov ax, word [ebx]
mov edx, 0x4ae578
cmp ax, word [edx]
jne 0x4207bd
lea esi, [ebx + 2]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
push ecx
push esi
push ebx
call fcn.004678c0
mov dx, word [ebx]
mov ecx, 0x4ae578
add esp, 0xc
cmp dx, word [ecx]
je 0x42079a
mov eax, dword [0x4ae354]
xor esi, esi
sub eax, esi
je 0x4207dc
dec eax
je 0x4207e3
dec eax
jne 0x4207e3
call fcn.00411be0
neg eax
sbb eax, eax
inc eax
cmp eax, esi
jne 0x4207e3
mov eax, 1
jmp 0x4207e8
mov eax, 4
push eax
push ebp
mov dword [esp + 0x48], eax
call fcn.0041aeb0
mov dword [esp + 0x50], eax
lea eax, [esp + 0x6c]
add esp, 8
mov byte [esp + 0x64], 0
mov dword [esp + 0x28], eax
call fcn.0042ea20
test eax, eax
je 0x42081d
mov eax, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x54]
sub eax, edx
jmp 0x420828
mov eax, dword [ebp + 0x58]
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x50]
sub eax, edx
add eax, ecx
mov dword [esp + 0x34], eax
cmp byte [ebx], 0
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], esi
je 0x420d53
mov dword [esp + 0x44], 0x4cc264
mov edi, dword [esp + 0x28]
push ebx
mov dword [esp + 0x1c], edi
call fcn.0046830b
mov ebp, eax
sub eax, ebx
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add esp, 4
cmp eax, 2
rep movsb byte es:[edi], byte [esi]
jl 0x420893
mov esi, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [esi + 1]
xor edx, edx
mov dl, byte [esi]
shl ecx, 8
add ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x4208a1
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [edx]
mov esi, edx
mov dword [esp + 0x30], ecx
add esi, eax
mov eax, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x28], esi
mov byte [esi], 0
je 0x4208cf
mov eax, dword [esp + 0x30]
mov ecx, dword [eax*4 + 0x4dfd14]
test ecx, ecx
je 0x4208cf
xor ecx, ecx
mov cl, byte [eax + 0x4cfd14]
mov eax, ecx
test eax, eax
jne 0x420912
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
lea edx, [esp + 0x4c]
push edx
dec ecx
push ecx
mov ecx, dword [0x520d54]
lea eax, [esp + 0x38]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
cmp dword [esp + 0x40], 4
jne 0x42090e
mov edx, dword [esp + 0x4c]
lea eax, [edx + 3]
cdq
and edx, 3
add eax, edx
sar eax, 2
jmp 0x420912
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
add edi, eax
mov dword [ecx], eax
add ecx, 4
inc esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], ecx
call fcn.0042e1e0
cmp eax, 2
jl 0x420a0c
call fcn.0042e1e0
mov ecx, dword [esp + 0x10]
imul eax, dword [ecx + 0x2c]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
shl eax, 1
sub edx, eax
mov eax, edi
cmp eax, edx
jle 0x420a10
test esi, esi
je 0x4209f9
mov eax, dword [0x520d50]
test eax, eax
jne 0x42099a
push 0x4ae560
push pe_nt_image_headers32
push 0x4ca7dc
push 0x4ae550
call fcn.00459c80
add esp, 0x10
mov dword [0x520d50], 1
xor eax, eax
mov al, byte [esi]
push eax
call fcn.0045b8e0
add esp, 4
test eax, eax
mov edi, esi
je 0x4209ca
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jb 0x4209f9
mov cx, word [esi]
mov word [esp + 0x24], cx
mov byte [esp + 0x26], al
jmp 0x4209e3
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jb 0x4209f9
mov dl, byte [esi]
mov byte [esp + 0x24], dl
mov byte [esp + 0x25], al
lea eax, [esp + 0x24]
push eax
push 0x4ca7dc
call fcn.0046712c
add esp, 8
test eax, eax
jne 0x420a10
push ebx
call fcn.004210a0
add esp, 4
test eax, eax
je 0x420c32
jmp 0x420a10
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x34]
jg 0x420c3e
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
push ecx
push ebp
push ebx
call fcn.004678c0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], edx
mov esi, 0x4ae54c
mov eax, edx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x420a6f
test cl, cl
je 0x420a6b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x420a6f
add eax, 2
add esi, 2
test cl, cl
jne 0x420a4b
xor eax, eax
jmp 0x420a74
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x420a9e
call fcn.0042e150
test eax, eax
je 0x420a93
call fcn.0042e170
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x60], eax
jmp 0x420a9e
mov edx, dword [esp + 0x10]
mov dword [edx + 0x60], 0
mov eax, dword [esp + 0x18]
mov esi, 0x4ae548
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x420acb
test cl, cl
je 0x420ac7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x420acb
add eax, 2
add esi, 2
test cl, cl
jne 0x420aa7
xor eax, eax
jmp 0x420ad0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x420adf
mov eax, dword [esp + 0x10]
mov dword [eax + 0x60], 0
test byte [esp + 0x20], 4
je 0x420c24
mov eax, dword [esp + 0x18]
mov esi, 0x4ae544
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x420b17
test cl, cl
je 0x420b13
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x420b17
add eax, 2
add esi, 2
test cl, cl
jne 0x420af3
xor eax, eax
jmp 0x420b1c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x420b46
call fcn.0042e150
test eax, eax
je 0x420b3b
call fcn.0042e170
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x60], eax
jmp 0x420b46
mov edx, dword [esp + 0x10]
mov dword [edx + 0x60], 0
mov eax, dword [esp + 0x18]
mov esi, 0x4ae540
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x420b73
test cl, cl
je 0x420b6f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x420b73
add eax, 2
add esi, 2
test cl, cl
jne 0x420b4f
xor eax, eax
jmp 0x420b78
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x420b87
mov eax, dword [esp + 0x10]
mov dword [eax + 0x60], 0
mov eax, dword [esp + 0x18]
mov esi, 0x4ae53c
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x420bb4
test cl, cl
je 0x420bb0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x420bb4
add eax, 2
add esi, 2
test cl, cl
jne 0x420b90
xor eax, eax
jmp 0x420bb9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x420be3
call fcn.0042e150
test eax, eax
je 0x420bd8
call fcn.0042e170
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x60], eax
jmp 0x420be3
mov edx, dword [esp + 0x10]
mov dword [edx + 0x60], 0
mov eax, dword [esp + 0x18]
mov esi, 0x4ae538
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x420c10
test cl, cl
je 0x420c0c
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x420c10
add eax, 2
add esi, 2
test cl, cl
jne 0x420bec
xor eax, eax
jmp 0x420c15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x420c24
mov eax, dword [esp + 0x10]
mov dword [eax + 0x60], 0
cmp byte [ebx], 0
jne 0x42084f
jmp 0x420d53
mov ecx, dword [esp + 0x18]
mov byte [ecx], 0
jmp 0x420d53
mov edx, dword [esp + 0x38]
sub eax, dword [edx*4 + 0x4cc260]
test esi, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax], 0
je 0x420d53
call fcn.0042e1e0
test eax, eax
jne 0x420c89
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00421150
add esp, 4
test eax, eax
jne 0x420cb6
push ebx
call fcn.004210a0
add esp, 4
test eax, eax
je 0x420d53
jmp 0x420cb6
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*2]
cmp edx, dword [esp + 0x34]
jle 0x420d53
mov eax, dword [esp + 0x1c]
push eax
call fcn.004210a0
add esp, 4
test eax, eax
jne 0x420d53
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x420d53
mov ecx, eax
push ecx
call fcn.00421150
add esp, 4
test eax, eax
jne 0x420d09
mov ebp, dword [esp + 0x1c]
or ecx, 0xffffffff
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
or ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
push ecx
lea edx, [esi + ebx]
push ebx
push edx
call fcn.004678c0
mov ecx, esi
mov eax, ecx
add esp, 0xc
shr ecx, 2
mov esi, ebp
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x420d4a
call fcn.0042e1e0
test eax, eax
je 0x420d53
mov ebp, dword [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
or ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
push ecx
lea ecx, [esi + ebx]
push ebx
push ecx
call fcn.004678c0
mov ecx, esi
mov edx, ecx
add esp, 0xc
shr ecx, 2
mov esi, ebp
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebp], 0
lea eax, [esp + 0x64]
push 0x7c
push eax
call fcn.00467bf5
xor ebx, ebx
add esp, 8
cmp eax, ebx
je 0x420d7e
lea ecx, [esp + 0x64]
push 0x7c
push ecx
mov byte [eax], 0x20
call fcn.00467bf5
add esp, 8
cmp eax, ebx
jne 0x420d68
lea edx, [esp + 0x64]
push 0x81f1
push edx
call fcn.00467bf5
add esp, 8
cmp eax, ebx
je 0x420db4
mov cx, word [0x4ae578]
lea edx, [esp + 0x64]
push 0x81f1
push edx
mov word [eax], cx
call fcn.00467bf5
add esp, 8
cmp eax, ebx
jne 0x420d94
mov al, byte [esp + 0x64]
test al, al
jne 0x420e4f
mov eax, dword [0x5bd664]
mov edx, dword [eax]
mov ecx, dword [esp + 0xc68]
sub edx, ecx
mov dword [eax], edx
call fcn.0042ea20
test eax, eax
je 0x420e02
mov eax, dword [0x4cc240]
mov edx, dword [0x4cc228]
mov ecx, dword [0x4cc258]
sub eax, edx
mov dword [0x4cc240], eax
mov eax, dword [0x4cc24c]
add ecx, eax
mov dword [0x4cc244], ecx
jmp 0x420e20
mov edx, dword [0x4cc248]
mov eax, dword [0x4cc258]
mov ecx, dword [0x4cc228]
add eax, edx
mov dword [0x4cc240], eax
add dword [0x4cc244], ecx
cmp dword [esp + 0x3c], ebx
mov dword [0x4c9f94], ebx
je 0x421086
push ebx
push ebx
push 0x1a95282e
call fcn.0040fb00
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc54
ret
cmp dword [0x51fd28], ebx
jne 0x420eb5
cmp dword [0x4c9f20], ebx
jne 0x420eb5
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x64]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
or ecx, 0xffffffff
mov esi, edi
mov edi, 0x4c9fd8
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
lea edi, [esp + 0x64]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
or ecx, 0xffffffff
mov esi, edi
mov edi, 0x4ca9ec
repne scasb al, byte es:[edi]
mov ecx, edx
shr ecx, 2
dec edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x64]
push 0x8175
push eax
call fcn.00467bf5
add esp, 8
test eax, eax
jne 0x420ed2
test byte [esp + 0x20], 1
je 0x420f0c
mov ecx, dword [0x4cfbf8]
mov edx, ecx
shl edx, 5
add edx, ecx
lea eax, [ecx + edx*4]
shl eax, 2
mov dword [eax + 0x4cd270], 1
mov dl, byte [eax + 0x4cd274]
test dl, dl
je 0x420f0c
mov edx, dword [0x4cc244]
inc ecx
mov dword [eax + 0x4cd268], edx
mov dword [0x4cfbf8], ecx
mov edx, dword [0x4cc23c]
push 1
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x6c]
push ecx
push edx
push 0x4cc1f8
call fcn.0041b160
mov esi, eax
lea eax, [esp + 0x78]
push 0x8176
push eax
call fcn.00467bf5
mov ecx, dword [0x520d48]
add esp, 0x1c
test eax, eax
jne 0x420f53
test byte [esp + 0x20], 2
je 0x420f91
cmp byte [ecx], 0
jne 0x420fc7
mov eax, dword [0x4cfbf8]
cmp eax, ebx
je 0x420f91
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*4]
shl eax, 2
mov dword [eax + 0x4cd05c], ebx
cmp dword [eax + 0x4cd058], ebx
jne 0x420f91
mov edx, dword [0x4cc244]
mov edi, dword [0x4cc228]
add edi, edx
sub edi, dword [eax + 0x4cd054]
mov dword [eax + 0x4cd058], edi
cmp byte [ecx], 0
jne 0x420fc7
mov dword [ecx + 0x400], ebx
mov dword [0x520d48], ebx
call fcn.0042ea20
test eax, eax
je 0x420fb9
add dword [0x4cc244], esi
mov dword [0x520d60], ebx
jmp 0x421024
add dword [0x4cc240], esi
mov dword [0x520d60], ebx
jmp 0x421024
call fcn.0042ea20
test eax, eax
je 0x420ff9
mov ecx, dword [0x4cc240]
mov eax, dword [0x4cc228]
mov edx, dword [0x4cc258]
sub ecx, eax
mov dword [0x4cc240], ecx
mov ecx, dword [0x4cc24c]
add edx, ecx
mov dword [0x4cc244], edx
jmp 0x42101e
mov eax, dword [0x4cc248]
mov ecx, dword [0x4cc258]
mov edx, dword [0x4cc228]
add ecx, eax
mov eax, dword [0x4cc244]
add eax, edx
mov dword [0x4cc240], ecx
mov dword [0x4cc244], eax
mov dword [0x4c9f94], ebx
mov eax, dword [0x5bd664]
mov edi, dword [eax]
mov ecx, dword [esp + 0xc68]
sub edi, ecx
mov dword [eax], edi
mov edx, dword [0x4cc234]
push edx
call fcn.00427d70
mov eax, dword [esp + 0x64]
push eax
call fcn.00427d70
mov ecx, dword [esp + 0x64]
push ecx
call fcn.00427d70
mov edx, dword [esp + 0x64]
push edx
call fcn.00427d70
mov eax, dword [esp + 0x64]
push eax
call fcn.00427d70
mov ecx, dword [0x4cc23c]
push ecx
call fcn.00427d70
push ebx
push 6
push 0x47bb540c
call fcn.0040fb00
add esp, 0x24
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc54
ret