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

Disassembly:
sub esp, 0x31c
mov eax, dword [0x4951c0]
xor eax, esp
mov dword [esp + 0x314], eax
mov eax, dword [esp + 0x320]
push ebx
push ebp
mov dword [esp + 0x38], eax
push esi
mov esi, edx
mov eax, ecx
cdq
and edx, 0xffff
add eax, edx
mov ebx, eax
sar ebx, 0x10
and ecx, 0x8000ffff
push edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x80], ebx
jns 0x4271f0
dec ecx
or ecx, 0xffff0000
inc ecx
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
and ecx, 0x800000ff
mov dword [esp + 0x58], eax
jns 0x427212
dec ecx
or ecx, 0xffffff00
inc ecx
cmp dword [esp + 0x334], 0
mov dword [esp + 0x78], ecx
je 0x427276
mov eax, dword [esi + 0x264]
cdq
idiv dword [esi + 0x284]
cmp dword [esi + 0x278], 1
mov ebp, dword [esi + 0x268]
mov ebx, eax
jne 0x427245
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
push 0xffffff
mov byte [esi], 0
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov edx, dword [esi + 0x218]
mov edi, eax
push edi
lea ecx, [esp + 0x6c]
xor eax, eax
push ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], ebx
push edx
jmp 0x4272e3
mov eax, dword [esi + 0x268]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x264]
cdq
idiv dword [esi + 0x284]
cmp dword [esi + 0x278], 1
mov ebp, eax
jne 0x42729f
cdq
sub eax, edx
sar eax, 1
mov ebp, eax
movzx edx, byte [esp + 0x58]
movzx ecx, cl
shl ecx, 8
or ecx, edx
movzx eax, bl
shl ecx, 8
or ecx, eax
push ecx
mov byte [esi], 0
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ecx, dword [esp + 0x24]
mov edi, eax
xor eax, eax
push edi
lea edx, [esp + 0x6c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x218]
push edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ebp
push eax
call dword [sym.imp.USER32.dll_FillRect]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [0x58fb70], 0
jne 0x427302
cmp dword [0x58fb74], 0
je 0x42733c
mov eax, dword [0x54c0d4]
cmp eax, 0xffffffff
jne 0x42732c
mov eax, dword [0x4edb8c]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x7c], eax
mov eax, dword [0x4ed660]
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
mov dword [esp + 0x44], ebx
jmp 0x427340
mov ebx, dword [0x54acf0]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x44], ebx
jmp 0x427340
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, eax
mov byte [esp + 0x13], 0
xor edi, edi
lea ebp, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x427350
sub ecx, ebp
je 0x427384
jmp 0x427360
cmp byte [eax + edi], 0x28
je 0x42737f
mov ecx, eax
inc edi
lea ebp, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x427370
sub ecx, ebp
cmp edi, ecx
jb 0x427360
jmp 0x427384
mov byte [esp + 0x13], 1
cmp dword [0x58fb70], 0
je 0x427392
mov byte [esp + 0x13], 1
xor edi, edi
xor ebp, ebp
cmp dword [0x58fe34], edi
je 0x4273f5
mov byte [esp + 0x220], 0x40
xor eax, eax
jmp 0x4273b0
mov cl, byte [eax + 0x53a0c8]
mov byte [esp + eax + 0x221], cl
inc eax
test cl, cl
jne 0x4273b0
mov eax, dword [0x4ed870]
mov ecx, dword [0x4ab6cc]
dec eax
imul eax, ecx
cmp byte [esp + 0x13], 0
mov ebp, 0xfffffc7c
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
je 0x427449
mov edx, dword [0x4edb8c]
sub edx, ecx
add eax, edx
mov dword [esp + 0x20], eax
jmp 0x427449
xor ecx, ecx
jmp 0x427400
mov dl, byte [ecx + 0x53a0c8]
mov byte [esp + ecx + 0x220], dl
inc ecx
test dl, dl
jne 0x427400
xor ecx, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], ecx
cmp dword [0x58fb70], edi
je 0x427434
mov ecx, dword [0x4edb80]
sub ecx, dword [0x4ed660]
mov dword [esp + 0x14], ecx
cmp byte [esp + 0x13], 0
je 0x427449
cmp dword [0x58fb74], edi
je 0x427449
add ecx, ebx
mov dword [esp + 0x14], ecx
mov eax, dword [0x497dc4]
cdq
idiv dword [0x497de4]
cmp dword [0x497dd8], 1
jne 0x427463
cdq
sub eax, edx
sar eax, 1
mov ebx, dword [0x4edb8c]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
lea ebx, [ebx + ebx*2]
cmp eax, ebx
mov eax, dword [0x4ed660]
jl 0x42748a
lea ecx, [eax + eax*2]
cmp dword [0x497dc8], ecx
jge 0x42753b
lea edx, [eax + eax*2]
mov eax, dword [0x497d78]
mov dword [esp + 0x24], edx
test eax, eax
je 0x4274e0
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp dword [0x497db4], 0
je 0x4274cf
mov eax, dword [0x497dc0]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [0x497db4]
push ecx
call fcn.00407f4f
add esp, 4
mov dword [0x497db4], 0
xor eax, eax
mov dword [0x497d78], eax
mov dword [0x497dd4], eax
mov byte [0x497b60], al
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [0x497d78], eax
mov eax, dword [esp + 0x24]
mov ecx, ebx
mov ebx, 0x497d7c
call fcn.00469800
mov edx, dword [0x497dc0]
mov eax, dword [0x497d78]
push edx
push eax
call edi
mov ecx, dword [0x497d78]
push 0xffffff
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [0x497d78]
push 2
push edx
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [0x497d78]
push 0
push eax
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [0x543990]
neg eax
sbb eax, eax
lea ecx, [esp + 0x220]
push ecx
push 1
xor ebx, ebx
push ebx
push ebx
push ebx
push 0x80
push ebx
push ebx
and eax, 0x2bc
push ebx
push eax
mov eax, dword [0x4edb8c]
lea eax, [eax + eax*2]
cdq
push ebp
sub eax, edx
push ebp
sar eax, 1
push eax
mov eax, dword [0x4ed660]
lea edx, [eax + eax*2]
push edx
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
mov eax, dword [0x497d78]
push eax
call edi
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x12], bl
jmp 0x4275a6
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov al, byte [ecx + edx]
movzx ecx, al
mov byte [esp + 0x2f], al
cmp ecx, 0x5c
ja case.default.0x4275c8
movzx eax, byte [ecx + 0x4282dc]
jmp dword [eax*4 + 0x4282c4]
cmp dword [0x58fb94], 0
jne case.0x4275c8.1
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x50], edx
inc edx
cmp byte [esi + edx], 0x2f
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x4c], 1
mov ecx, edx
je 0x427617
lea ecx, [ecx]
inc ecx
cmp byte [esi + ecx], 0x2f
jne 0x427610
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
mov edi, eax
inc ecx
sar edi, 1
cmp byte [esi + ecx], 0x29
mov edx, ecx
je 0x427637
jmp 0x427630
inc ecx
cmp byte [esi + ecx], 0x29
jne 0x427630
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
xor esi, esi
sar eax, 1
cmp dword [0x58fe34], esi
jne 0x4276ee
mov edx, dword [0x4ab6cc]
imul eax, dword [esp + 0x7c]
mov ecx, edi
imul ecx, edx
cmp eax, ecx
jle 0x4276ac
mov ecx, dword [0x4ed870]
dec ecx
imul ecx, edx
lea edx, [eax + ebx]
cmp edx, ecx
jle 0x42768f
mov ecx, dword [esp + 0x44]
mov edx, dword [0x4edb80]
add edx, ecx
xor ebx, ebx
add ebp, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x64], esi
mov dword [esp + 0x54], ebp
imul edi, dword [0x4edb8c]
sub eax, edi
mov dword [esp + 0x34], eax
cdq
sub eax, edx
sar eax, 1
add ebx, eax
mov dword [esp + 0x20], ebx
jmp case.0x4275c8.0
mov edi, dword [0x4ed870]
dec edi
imul edi, edx
xor eax, eax
add ecx, ebx
cmp ecx, edi
mov dword [esp + 0x34], eax
jle 0x4276de
mov ecx, dword [esp + 0x44]
mov edx, dword [0x4edb80]
add edx, ecx
xor ebx, ebx
add ebp, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x64], esi
mov dword [esp + 0x54], ebp
cdq
sub eax, edx
sar eax, 1
add ebx, eax
mov dword [esp + 0x20], ebx
jmp case.0x4275c8.0
imul edi, dword [0x4ed660]
imul eax, dword [esp + 0x44]
cmp eax, edi
jle 0x427714
sub eax, edi
mov dword [esp + 0x34], eax
cdq
sub eax, edx
sar eax, 1
add ebp, eax
mov dword [esp + 0x14], ebp
jmp case.0x4275c8.0
xor eax, eax
mov dword [esp + 0x34], eax
cdq
sub eax, edx
sar eax, 1
add ebp, eax
mov dword [esp + 0x14], ebp
jmp case.0x4275c8.0
cmp dword [0x58fb94], 0
jne case.0x4275c8.1
push 0x64
lea eax, [esp + 0x1bc]
push 0
push eax
call fcn.004112a0
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, esi
sub ecx, eax
push ecx
add edx, eax
push edx
lea eax, [esp + 0x1c0]
push eax
call fcn.00409560
mov eax, dword [esp + 0x40]
cdq
sub eax, edx
inc esi
add esp, 0xc
sar eax, 1
cmp dword [0x58fe34], 0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], 3
jne 0x427794
add dword [esp + 0x20], eax
jmp 0x427798
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x80]
push ecx
push edx
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x1c4]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
mov dword [esp + 0x4c], 0
call fcn.00443900
jmp case.0x4275c8.0
cmp dword [0x58fb94], 0
jne case.0x4275c8.1
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sub eax, dword [esp + 0x50]
mov dword [esp + 0x4c], 2
imul eax, dword [0x4ab6cc]
cdq
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x34]
inc ecx
mov dword [0x54886c], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], ecx
jmp case.0x4275c8.0
cmp byte [esp + 0x12], 0
je 0x427829
inc dword [esp + 0x1c]
mov byte [esp + 0x12], 0
jmp 0x4275a2
mov esi, dword [esp + 0x3c]
xor eax, eax
cmp dword [0x58fe34], eax
je 0x42784e
mov ecx, dword [0x4ab6cc]
sub dword [esp + 0x20], ecx
inc dword [esp + 0x1c]
mov dword [esp + 0x14], eax
jmp 0x4275a6
mov edx, dword [0x4edb80]
add dword [esp + 0x14], edx
inc dword [esp + 0x1c]
mov dword [esp + 0x20], eax
jmp 0x4275a6
mov esi, dword [esp + 0x3c]
mov al, byte [esp + 0x2f]
mov ecx, 2
mov byte [esp + 0x12], 0
cmp dword [esp + 0x4c], ecx
jne 0x427886
add dword [esp + 0x1c], ecx
jmp case.0x4275c8.0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov cl, byte [ecx + edx + 1]
mov byte [esp + 0x38], al
mov byte [esp + 0x39], cl
test al, al
jne 0x4278aa
test cl, cl
je case.0x4275c8.0
mov esi, dword [esp + 0x3c]
mov eax, dword [0x497dc4]
cdq
idiv dword [0x497de4]
cmp dword [0x497dd8], 1
mov ebp, dword [0x497dc8]
mov ebx, eax
jne 0x4278ce
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
push 0
mov byte [0x497b60], 0
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ecx, dword [0x497d78]
mov edi, eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
push edi
lea eax, [esp + 0x6c]
push eax
push ecx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x7c], ebx
call dword [sym.imp.USER32.dll_FillRect]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [0x58fe34], 0
mov edi, dword [sym.imp.GDI32.dll_TextOutA]
push 2
jne 0x427946
mov eax, dword [0x497d78]
lea edx, [esp + 0x3c]
push edx
push 0
push 0
push eax
call edi
cmp dword [0x543990], 0
je 0x427984
push 2
lea ecx, [esp + 0x3c]
push ecx
push 0
push 1
jmp 0x42797b
mov edx, dword [0x497d78]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [0x4edb8c]
push 0
lea ecx, [eax + eax*2]
push ecx
push edx
call edi
cmp dword [0x543990], 0
je 0x427984
push 2
lea eax, [esp + 0x3c]
push eax
mov eax, dword [0x4edb8c]
push 0
lea ecx, [eax + eax*2 + 1]
push ecx
mov edx, dword [0x497d78]
push edx
call edi
mov ecx, esi
call fcn.00401ff0
lea eax, [eax + eax*2]
mov edi, dword [esi + 0x268]
lea eax, [eax*8 + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x20]
sar ebp, 2
mov ecx, edi
sub ecx, dword [esp + 0x14]
add ebp, ebp
add ebp, ebp
dec ecx
imul ecx, ebp
lea eax, [eax + eax*2]
add ecx, eax
mov eax, dword [0x4edb8c]
lea ebx, [eax + eax*2]
mov eax, dword [0x497dc4]
lea edx, [ebx + ebp]
mov dword [esp + 0x5c], edx
cdq
idiv dword [0x497de4]
cmp dword [0x497dd8], 1
jne 0x4279f2
cdq
sub eax, edx
sar eax, 1
lea eax, [eax + eax*2]
lea eax, [eax*8 + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
mov esi, dword [esi + 0x25c]
and edx, 3
add eax, edx
mov edx, dword [0x497dc8]
sar eax, 2
add eax, eax
add eax, eax
dec edx
imul edx, eax
mov dword [esp + 0x28], eax
add eax, ebx
cmp dword [0x58fcbc], 0
lea eax, [eax + eax*2]
mov dword [esp + 0x60], eax
mov eax, dword [0x497dbc]
mov ebx, edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ebx
jne 0x427a6e
cmp dword [0x52e5bc], 0
je 0x427a6e
mov dword [0x54a8c4], 1
mov dword [0x54acf4], 0
sub edi, dword [0x54acf4]
mov eax, dword [esp + 0x20]
sub edi, dword [esp + 0x14]
dec edi
imul edi, ebp
mov ebp, dword [0x54a8c4]
add eax, ebp
lea eax, [eax + eax*2]
add edi, eax
xor eax, eax
cmp dword [esp + 0x334], eax
je 0x427c28
cmp dword [0x4ed660], eax
mov dword [esp + 0x24], eax
jle 0x427e58
lea esp, [esp]
cmp dword [0x4edb8c], 0
mov dword [esp + 0x48], 0
jle 0x427bfe
mov edx, dword [esp + 0x30]
lea eax, [ebx + edx + 6]
mov edx, 3
sub edx, dword [esp + 0x28]
lea edx, [ebx + edx*2]
add edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
movzx ebx, byte [ebx + edx - 3]
movzx ebp, byte [eax - 3]
lea ebx, [ebp + ebx*2]
mov ebp, dword [esp + 0x28]
movzx ebp, byte [edx + ebp - 6]
add ebx, ebp
mov ebp, dword [esp + 0x28]
movzx ebp, byte [edx + ebp]
add ebx, ebp
movzx ebp, byte [edx - 3]
add ebx, ebp
movzx ebp, byte [eax]
lea ebx, [ebp + ebx*2]
movzx ebp, byte [eax - 6]
add ebx, ebp
movzx ebp, byte [edx]
add ebx, ebp
movzx ebp, byte [edx - 6]
add ebx, ebp
sar ebx, 4
mov ebp, 0xff
sub ebp, ebx
movzx ebx, byte [esi + ecx]
cmp ebx, ebp
jle 0x427b35
mov ebx, ebp
mov byte [esi + ecx], bl
movzx ebx, byte [esi + ecx + 1]
inc ecx
cmp ebx, ebp
jle 0x427b44
mov ebx, ebp
mov byte [esi + ecx], bl
movzx ebx, byte [esi + ecx + 1]
inc ecx
cmp ebx, ebp
jle 0x427b53
mov ebx, ebp
mov byte [esi + ecx], bl
inc ecx
cmp dword [0x52e5bc], 0
je 0x427bda
mov ebx, dword [esp + 0x28]
movzx ebx, byte [ebx + edx - 3]
movzx ebp, byte [eax - 3]
lea ebx, [ebp + ebx*2]
mov ebp, dword [esp + 0x28]
movzx ebp, byte [edx + ebp - 6]
add ebx, ebp
mov ebp, dword [esp + 0x28]
movzx ebp, byte [edx + ebp]
add ebx, ebp
movzx ebp, byte [edx - 3]
add ebx, ebp
movzx ebp, byte [eax]
lea ebx, [ebp + ebx*2]
movzx ebp, byte [eax - 6]
add ebx, ebp
movzx ebp, byte [edx]
add ebx, ebp
movzx ebp, byte [edx - 6]
add ebx, ebp
sar ebx, 4
mov ebp, 0xff
sub ebp, ebx
movzx ebx, byte [edi + esi]
cmp ebx, ebp
jle 0x427bb8
mov ebx, ebp
mov byte [edi + esi], bl
movzx ebx, byte [edi + esi + 1]
inc edi
cmp ebx, ebp
jle 0x427bc7
mov ebx, ebp
mov byte [edi + esi], bl
movzx ebx, byte [edi + esi + 1]
inc edi
cmp ebx, ebp
jle 0x427bd6
mov ebx, ebp
mov byte [edi + esi], bl
inc edi
mov ebx, dword [esp + 0x48]
add dword [esp + 0x18], 9
inc ebx
add edx, 9
add eax, 9
cmp ebx, dword [0x4edb8c]
mov dword [esp + 0x48], ebx
jl 0x427add
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
sub ebx, dword [esp + 0x60]
sub ecx, eax
sub edi, eax
mov eax, dword [esp + 0x24]
inc eax
cmp eax, dword [0x4ed660]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], eax
jl 0x427ab0
jmp 0x427e58
cmp dword [0x52e5bc], eax
je 0x427d2b
cmp dword [0x4ed660], eax
mov dword [esp + 0x48], eax
jle 0x427d2b
jmp 0x427c52
xor eax, eax
cmp dword [0x4edb8c], eax
mov dword [esp + 0x24], eax
jle 0x427d0e
mov ebp, dword [esp + 0x30]
lea eax, [ebx + ebp + 6]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov edx, 3
sub edx, eax
lea edx, [ebx + edx*2]
add edx, ebp
jmp 0x427c84
mov eax, dword [esp + 0x28]
movzx ebp, byte [eax + edx - 3]
movzx eax, byte [eax + edx]
lea eax, [eax + ebp*2]
mov ebp, dword [esp + 0x28]
movzx ebp, byte [edx + ebp - 6]
add eax, ebp
mov ebp, dword [esp + 0x18]
movzx ebp, byte [ebp - 3]
add eax, ebp
movzx ebp, byte [edx - 3]
add eax, ebp
mov ebp, dword [esp + 0x18]
movzx ebp, byte [ebp - 6]
lea eax, [ebp + eax*2]
movzx ebp, byte [edx - 6]
add eax, ebp
mov ebp, dword [esp + 0x18]
movzx ebp, byte [ebp]
add eax, ebp
movzx ebp, byte [edx]
add eax, ebp
test eax, 0xfffffff0
je 0x427ce4
mov byte [edi + esi], 0
inc edi
mov byte [edi + esi], 0
inc edi
mov byte [edi + esi], 0
inc edi
jmp 0x427ce7
add edi, 3
mov eax, dword [esp + 0x24]
add dword [esp + 0x18], 9
inc eax
add ebx, 9
add edx, 9
cmp eax, dword [0x4edb8c]
mov dword [esp + 0x24], eax
jl 0x427c80
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x48]
sub ebx, dword [esp + 0x60]
sub edi, dword [esp + 0x5c]
inc eax
cmp eax, dword [0x4ed660]
mov dword [esp + 0x48], eax
jl 0x427c50
cmp dword [0x4ed660], 0
mov eax, edx
mov dword [esp + 0x24], 0
jle 0x427e58
jmp 0x427d50
cmp dword [0x4edb8c], 0
mov dword [esp + 0x18], 0
jle 0x427e3b
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
mov edi, eax
sub edi, edx
add edx, edx
mov ebp, eax
sub ebp, edx
add edi, ebx
add ebp, ebx
cmp byte [esi + ecx], 0
jbe 0x427d93
cmp byte [esi + ecx + 1], 0
jbe 0x427d93
cmp byte [esi + ecx + 2], 0
ja 0x427e1b
mov ebx, dword [esp + 0x30]
movzx ebx, byte [eax + ebx + 3]
movzx edx, byte [edi + 3]
lea edx, [ebx + edx*2]
movzx ebx, byte [ebp + 3]
add edx, ebx
movzx ebx, byte [edi + 6]
add edx, ebx
movzx ebx, byte [edi]
add edx, ebx
mov ebx, dword [esp + 0x30]
movzx ebx, byte [eax + ebx + 6]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x30]
movzx ebx, byte [eax + ebx]
add edx, ebx
movzx ebx, byte [ebp + 6]
add edx, ebx
movzx ebx, byte [ebp]
add edx, ebx
sar edx, 4
test edx, edx
je 0x427e1b
mov ebx, dword [esp + 0x78]
shl ebx, 8
movzx ebx, byte [ebx + edx + 0x49b588]
mov byte [esi + ecx], bl
mov ebx, dword [esp + 0x58]
shl ebx, 8
movzx ebx, byte [ebx + edx + 0x49b588]
mov byte [esi + ecx + 1], bl
mov ebx, dword [esp + 0x80]
inc ecx
shl ebx, 8
mov dl, byte [ebx + edx + 0x49b588]
inc ecx
mov byte [esi + ecx], dl
inc ecx
jmp 0x427e1e
add ecx, 3
inc dword [esp + 0x18]
mov edx, dword [esp + 0x18]
add eax, 9
add edi, 9
add ebp, 9
cmp edx, dword [0x4edb8c]
jl 0x427d7b
mov edx, dword [esp + 0x24]
sub eax, dword [esp + 0x60]
sub ecx, dword [esp + 0x5c]
inc edx
cmp edx, dword [0x4ed660]
mov dword [esp + 0x24], edx
jl 0x427d50
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
mov ebp, dword [0x58fb94]
add eax, 2
xor esi, esi
mov dword [esp + 0x1c], eax
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x24], esi
add eax, edx
mov dl, byte [eax]
test ebp, ebp
jne 0x427f40
cmp dl, 0x28
jne 0x427f23
lea edi, [ebp + 1]
inc eax
mov dl, byte [eax]
test ebp, ebp
jne 0x427fc8
cmp dl, 0x28
jne 0x427fab
lea edi, [ebp + 1]
inc eax
mov dl, byte [eax]
test ebp, ebp
jne 0x428054
cmp dl, 0x28
jne 0x428037
lea edi, [ebp + 1]
inc eax
mov dl, byte [eax]
test ebp, ebp
jne 0x4280e0
cmp dl, 0x28
jne 0x4280c3
lea edi, [ebp + 1]
inc eax
mov edx, dword [esp + 0x24]
add edx, 4
cmp edx, 0x80
mov dword [esp + 0x24], edx
jl 0x427e79
mov ebx, dword [0x4edb80]
mov ebp, dword [esp + 0x14]
xor edi, edi
mov byte [esp + ecx + 0x8a], 0
mov byte [esp + ecx + 0x89], 0
mov byte [esp + ecx + 0x88], 0
cmp dword [0x58fe34], edi
je 0x42814f
add ebp, ebx
mov dword [esp + 0x14], ebp
jmp 0x428158
cmp dl, 0x2f
jne 0x427f32
mov esi, 1
jmp 0x427e8f
cmp dl, 0x29
jne 0x427f40
xor esi, esi
xor edi, edi
jmp 0x427e8f
test dl, dl
je 0x427ee8
cmp dl, 0x81
jb 0x427f4e
cmp dl, 0x9f
jbe 0x427f5c
mov bl, dl
add bl, 0x20
cmp bl, 0x1c
ja 0x427e8f
test esi, esi
je 0x427f68
add eax, 2
jmp 0x427e90
test edi, edi
jne 0x427f85
mov byte [esp + ecx + 0x88], dl
mov dl, byte [eax + 1]
inc eax
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
jmp 0x427e8f
movzx edx, byte [0x4ed348]
mov byte [esp + ecx + 0x88], dl
movzx edx, byte [0x4ed349]
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
add eax, 2
jmp 0x427e90
cmp dl, 0x2f
jne 0x427fba
mov esi, 1
jmp 0x427ea6
cmp dl, 0x29
jne 0x427fc8
xor esi, esi
xor edi, edi
jmp 0x427ea6
test dl, dl
je 0x427ee8
cmp dl, 0x81
jb 0x427fda
cmp dl, 0x9f
jbe 0x427fe8
mov bl, dl
add bl, 0x20
cmp bl, 0x1c
ja 0x427ea6
test esi, esi
je 0x427ff4
add eax, 2
jmp 0x427ea7
test edi, edi
jne 0x428011
mov byte [esp + ecx + 0x88], dl
mov dl, byte [eax + 1]
inc eax
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
jmp 0x427ea6
movzx edx, byte [0x4ed348]
mov byte [esp + ecx + 0x88], dl
movzx edx, byte [0x4ed349]
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
add eax, 2
jmp 0x427ea7
cmp dl, 0x2f
jne 0x428046
mov esi, 1
jmp 0x427ebd
cmp dl, 0x29
jne 0x428054
xor esi, esi
xor edi, edi
jmp 0x427ebd
test dl, dl
je 0x427ee8
cmp dl, 0x81
jb 0x428066
cmp dl, 0x9f
jbe 0x428074
mov bl, dl
add bl, 0x20
cmp bl, 0x1c
ja 0x427ebd
test esi, esi
je 0x428080
add eax, 2
jmp 0x427ebe
test edi, edi
jne 0x42809d
mov byte [esp + ecx + 0x88], dl
mov dl, byte [eax + 1]
inc eax
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
jmp 0x427ebd
movzx edx, byte [0x4ed348]
mov byte [esp + ecx + 0x88], dl
movzx edx, byte [0x4ed349]
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
add eax, 2
jmp 0x427ebe
cmp dl, 0x2f
jne 0x4280d2
mov esi, 1
jmp 0x427ed4
cmp dl, 0x29
jne 0x4280e0
xor esi, esi
xor edi, edi
jmp 0x427ed4
test dl, dl
je 0x427ee8
cmp dl, 0x81
jb 0x4280f2
cmp dl, 0x9f
jbe 0x428100
mov bl, dl
add bl, 0x20
cmp bl, 0x1c
ja 0x427ed4
test esi, esi
je 0x42810c
add eax, 2
jmp 0x427ed5
test edi, edi
jne 0x428129
mov byte [esp + ecx + 0x88], dl
mov dl, byte [eax + 1]
inc eax
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
jmp 0x427ed4
movzx edx, byte [0x4ed348]
mov byte [esp + ecx + 0x88], dl
movzx edx, byte [0x4ed349]
inc ecx
mov byte [esp + ecx + 0x88], dl
inc ecx
add eax, 2
jmp 0x427ed5
mov eax, dword [0x4ab6cc]
add dword [esp + 0x20], eax
mov dword [esp + 0x18], 3
cmp ecx, dword [esp + 0x18]
jle 0x4281ea
cmp byte [0x58faba], 1
je 0x4281ea
cmp byte [0x4ed348], 0
je 0x4281ae
mov al, byte [esp + edi + 0x88]
mov dl, byte [0x4ed348]
mov esi, 0x4ed348
mov edi, edi
cmp dl, al
jne 0x4281a4
mov dl, byte [esi + 1]
cmp dl, byte [esp + edi + 0x89]
je 0x428233
mov dl, byte [esi + 2]
add esi, 2
test dl, dl
jne 0x428190
cmp byte [0x53bf38], 0
je 0x4281ea
mov al, byte [esp + edi + 0x8a]
mov dl, byte [0x53bf38]
mov esi, 0x53bf38
lea esp, [esp]
cmp dl, al
jne 0x4281e0
mov dl, byte [esi + 1]
cmp dl, byte [esp + edi + 0x8b]
je 0x428233
mov dl, byte [esi + 2]
add esi, 2
test dl, dl
jne 0x4281d0
mov eax, edi
cdq
xor esi, esi
sub eax, edx
cmp dword [0x58fe34], esi
je 0x428240
mov ecx, dword [0x4ebfc4]
sar eax, 1
imul eax, ebx
dec ecx
imul ecx, ebx
add eax, ebp
cmp eax, ecx
jle case.0x4275c8.0
mov ecx, dword [0x4ab6cc]
mov edx, dword [0x4ed870]
mov eax, dword [esp + 0x20]
imul edx, ecx
add eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], esi
cmp eax, edx
jmp 0x428298
add edi, 2
add dword [esp + 0x18], 2
jmp 0x428160
mov ecx, dword [0x4ed870]
mov edx, eax
mov eax, dword [0x4ab6cc]
sar edx, 1
imul edx, eax
add edx, dword [esp + 0x20]
dec ecx
imul ecx, eax
cmp edx, ecx
jle case.0x4275c8.0
cmp byte [esp + 0x13], 0
je 0x428283
cmp dword [0x58fb74], esi
je 0x428283
mov eax, dword [esp + 0x44]
lea ecx, [ebx + eax]
add ebx, eax
imul ebx, dword [0x4ebfc4]
add ebp, ecx
cmp ebp, ebx
jmp 0x428290
mov edx, dword [0x4ebfc4]
imul edx, ebx
add ebp, ebx
cmp ebp, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], esi
mov byte [esp + 0x12], 1
jge 0x4282aa
cmp byte [esp + 0x2f], 0
jne 0x4275a2
mov ecx, dword [esp + 0x324]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00407f40
add esp, 0x31c
ret