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

Disassembly:
sub esp, 0x84
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0xa28]
cmp eax, dword [edi + 0xa30]
mov esi, edx
mov dword [esp + 0x24], edi
jne 0x51bb03
mov dword [edi + 0xa3c], 0
pop edi
pop esi
add esp, 0x84
ret 4
lea eax, [edi + 0xa24]
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
push ebx
mov dword [esp + 0xc], edx
mov edx, dword [0x5a1b0c]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi]
push ebp
xor ebp, ebp
cmp ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebp
mov ebx, 1
jne 0x51bbae
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x51bbaa
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
add ecx, 2
inc eax
mov dword [esp + 0x40], eax
cmp dword [0x59f6ac], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], ecx
jne 0x51bb9c
push ebp
lea edx, [esp + 0x3c]
mov ecx, esi
call fcn.00532360
test eax, eax
je 0x51bb9c
mov dword [esp + 0x20], ebx
jmp 0x51bc12
lea edx, [esp + 0x10]
mov ecx, esi
call fcn.0051ba00
push ebx
jmp 0x51bc07
mov eax, dword [esp + 0x18]
cmp dword [0x59f7c8], edi
mov ecx, dword [0x59f6ac]
je 0x51bbc8
cmp ecx, ebp
jne 0x51bbc8
cmp dword [0x5950e0], ebp
je 0x51bc16
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x44], edx
add edx, 2
inc eax
cmp ecx, ebp
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
jne 0x51bc06
push ebx
lea edx, [esp + 0x3c]
mov ecx, esi
call fcn.00532360
test eax, eax
je 0x51bc06
mov dword [esp + 0x20], ebx
jmp 0x51bc12
push ebp
mov ecx, esi
lea edx, [esp + 0x14]
call fcn.0051a9b0
mov eax, dword [esp + 0x18]
cmp dword [edi + 0x700], 3
mov dword [esp + 0x24], ebp
mov dword [esp + 0x48], ebp
mov ebp, dword [sym.imp.USER32.dll_FillRect]
jne 0x51be8b
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
test ecx, ecx
mov ecx, dword [esp + 0x10]
je 0x51bc49
add ecx, 3
add edx, 3
jmp 0x51bc4f
add ecx, 2
add edx, 2
dec eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
cmp dword [edi + 0x704], 1
mov dword [esp + 0x38], ecx
mov ecx, dword [edi]
mov dword [esp + 0x3c], edx
jne 0x51bd75
call fcn.0050d190
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x24], ebx
je 0x51be87
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
sub ecx, edx
test eax, eax
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fst qword [esp + 0x30]
je 0x51bcaa
fadd qword [0x575220]
mov eax, dword [ebx + 0x360]
fild dword [ebx + 0x360]
test eax, eax
jge 0x51bcc0
fadd qword [0x575228]
test eax, eax
fmulp st(1)
fmul qword [0x575368]
jbe 0x51bce1
fcom qword [0x575220]
fnstsw ax
test ah, 5
jp 0x51bce1
fstp st(0)
fld qword [0x575220]
fcom qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x51bcf2
fstp st(0)
fld qword [esp + 0x30]
fild dword [esp + 0x38]
fadd st(1)
call fcn.00563394
fstp st(0)
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x370]
test eax, eax
jl 0x51bd2d
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea edx, [esp + 0x3c]
push edx
push esi
call ebp
mov eax, dword [ebx + 0x360]
inc eax
mov dword [ebx + 0x370], eax
jmp 0x51bd3e
push 2
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea ecx, [esp + 0x3c]
push ecx
push esi
call ebp
mov eax, dword [edi + 0xa38]
test eax, eax
je 0x51be87
mov eax, dword [0x5a11c8]
test eax, eax
je 0x51be87
mov edx, dword [ebx + 0x360]
push edx
lea eax, [ebx + 0x234]
push eax
add ebx, 4
push ebx
push str.Send__s__s__lu__
jmp 0x51be6a
call fcn.0048a790
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x48], ebx
je 0x51be87
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
sub ecx, edx
test eax, eax
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fst qword [esp + 0x30]
je 0x51bdac
fadd qword [0x575220]
mov eax, dword [ebx + 0x460]
fild dword [ebx + 0x460]
test eax, eax
jge 0x51bdc2
fadd qword [0x575228]
test eax, eax
fmulp st(1)
fmul qword [0x575368]
jbe 0x51bde3
fcom qword [0x575220]
fnstsw ax
test ah, 5
jp 0x51bde3
fstp st(0)
fld qword [0x575220]
fcom qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x51bdf4
fstp st(0)
fld qword [esp + 0x30]
fild dword [esp + 0x38]
fadd st(1)
call fcn.00563394
fstp st(0)
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x478]
test eax, eax
jl 0x51be2f
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea edx, [esp + 0x3c]
push edx
push esi
call ebp
mov eax, dword [ebx + 0x460]
inc eax
mov dword [ebx + 0x478], eax
jmp 0x51be40
push 2
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea ecx, [esp + 0x3c]
push ecx
push esi
call ebp
mov eax, dword [edi + 0xa38]
test eax, eax
je 0x51be87
mov eax, dword [0x5a11c8]
test eax, eax
je 0x51be87
mov edx, dword [ebx + 0x460]
push edx
lea eax, [ebx + 0x234]
push eax
add ebx, 4
push ebx
push str.Get__s__s__lu__
push 0x59fcc8
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, 0x59fcc8
mov edx, 1
add esp, 0x14
call fcn.00527050
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
sub eax, 5
mov dword [edi + 0xa3c], 0
mov ecx, dword [0x589be8]
xor ebx, ebx
mov ebp, eax
cmp dword [0x5950d0], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x30], ebx
jne 0x51bf09
cmp dword [esp + 0x28], ebx
je 0x51bf09
cmp dword [esp + 0x20], ebx
jne 0x51bf09
push 0x575e00
push ebx
push ebx
push ebx
push ebx
push 1
push ebx
push ebx
push ebx
push 0x2bc
push ebx
push ebx
push ebx
push 0x48
push 0x5a
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
cmp eax, ebx
mov dword [esp + 0x54], eax
je 0x51bf09
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x30], eax
mov edx, 0x104
mov ecx, 0x59fbc0
call fcn.0041e210
mov ecx, dword [esp + 0x98]
push ecx
mov edx, 0x104
mov ecx, 0x59fbc0
call fcn.0041e120
cmp ebp, ebx
jle 0x51bfba
mov eax, 0x59fbc0
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51bf40
sub eax, edx
mov ebx, eax
push ebx
mov edx, 0x59fbc0
mov ecx, esi
call fcn.004f8fc0
sub ebp, 0x11
dec ebx
cmp eax, ebp
jl 0x51bfba
dec ebx
cmp ebx, 1
jl 0x51bfba
mov edi, 0x59fbc0
mov byte [ebx + 0x59fbc0], 0
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x51bf73
mov edx, dword [0x57bb38]
mov eax, 0x59fbc0
mov dword [edi], edx
lea edx, [eax + 1]
jmp 0x51bf90
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51bf90
sub eax, edx
push eax
mov edx, 0x59fbc0
mov ecx, esi
call fcn.004f8fc0
cmp eax, ebp
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0xa3c], 1
mov edi, ecx
jge 0x51bf60
mov eax, dword [edi + 0x700]
test eax, eax
jne 0x51bfce
mov dword [edi + 0xa3c], 1
mov eax, dword [edi + 0x708]
cmp eax, 1
jne 0x51c001
mov eax, dword [0x589bd4]
cmp eax, 1
jl 0x51bff9
cmp eax, 0x10
jg 0x51bff9
lea ecx, [eax - 1]
call fcn.00431e50
mov edx, dword [eax*4 + 0x593350]
jmp 0x51c05c
mov eax, dword [0x594108]
push eax
jmp 0x51c05d
cmp eax, 2
jne 0x51c027
mov eax, dword [0x589bd8]
cmp eax, 1
jl 0x51c056
cmp eax, 0x10
jg 0x51c056
lea ecx, [eax - 1]
call fcn.00431e50
mov ecx, dword [eax*4 + 0x593350]
push ecx
jmp 0x51c05d
cmp eax, 3
jne 0x51c056
mov eax, dword [0x589bdc]
cmp eax, 1
jl 0x51c04d
cmp eax, 0x10
jg 0x51c04d
lea ecx, [eax - 1]
call fcn.00431e50
mov eax, dword [eax*4 + 0x593350]
push eax
jmp 0x51c05d
mov ecx, dword [0x594108]
push ecx
jmp 0x51c05d
mov edx, dword [0x594108]
push edx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
push 1
push esi
mov dword [esp + 0x54], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
mov edi, dword [sym.imp.USER32.dll_DrawTextA]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
test eax, eax
push 0xc20
je 0x51c307
lea eax, [esp + 0x70]
push eax
push 0xffffffffffffffff
push 0x59fbc0
push esi
call edi
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
sub eax, edx
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sub eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar ebx, 1
sar eax, 1
sub eax, ebx
mov ebx, 0x16
add edx, ebx
push 0x820
mov dword [esp + 0x14], edx
lea ecx, [ecx + eax + 1]
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push 0x59fbc0
dec ecx
push esi
mov dword [esp + 0x2c], ecx
call edi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [0x5950d0]
inc edx
sub ecx, ebx
test eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
jne 0x51c130
mov edi, dword [esp + 0x54]
test edi, edi
je 0x51c130
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x51c130
mov eax, dword [esp + 0x30]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x51c140
mov eax, dword [esp + 0x48]
test eax, eax
je 0x51c14c
lea ecx, [esp + 0x38]
push ecx
push esi
call dword [sym.imp.USER32.dll_InvertRect]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [eax + 0x704]
mov ebx, dword [eax + 0x700]
mov eax, dword [0x59f694]
test eax, eax
mov dword [esp + 0x24], edx
jne 0x51c194
mov ecx, dword [0x5a1afc]
push 0x1c
push ecx
call dword [sym.imp.USER32.dll_LoadBitmapA]
test eax, eax
mov dword [0x59f694], eax
je case.default.0x51c431
lea edx, [esp + 0x7c]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x51c1cf
mov ecx, dword [esp + 0x80]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x84]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebp, edx
mov dword [esp + 0x20], ecx
jmp 0x51c1dc
mov ebp, 0x10
mov dword [esp + 0x20], 0xe
cmp ebx, 9
ja case.default.0x51c431
jmp dword [ebx*4 + 0x51c680]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0xa40]
test eax, eax
je 0x51c1fe
xor edi, edi
jmp 0x51c266
mov edi, ebp
imul edi, edi, 0xb
jmp 0x51c266
mov edi, ebp
jmp 0x51c266
cmp edi, 1
je 0x51c220
cmp edi, 2
je 0x51c220
cmp edi, 3
lea edi, [ebp + ebp*2]
je 0x51c266
shl edi, 1
jmp 0x51c266
lea edi, [ebp + ebp]
jmp 0x51c266
cmp edi, 1
jne 0x51c234
lea edi, [ebp*4]
jmp 0x51c266
lea edi, [ebp + ebp*4]
jmp 0x51c266
lea edi, [ebp + ebp*8]
jmp 0x51c266
mov edi, ebp
imul edi, edi, 7
jmp 0x51c266
lea edi, [ebp*8]
jmp 0x51c266
lea edi, [ebp + ebp*4]
shl edi, 1
jmp 0x51c266
lea edi, [ebp + ebp*2]
shl edi, 2
jmp 0x51c266
mov edi, ebp
imul edi, edi, 0xd
test esi, esi
je case.default.0x51c431
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebx, eax
test ebx, ebx
je case.default.0x51c431
mov eax, dword [0x59f694]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push 0xff00ff
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push edx
push esi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
push eax
push ebp
push 0
mov edx, edi
mov ecx, ebx
call fcn.00473090
mov eax, dword [0x5918a8]
test eax, eax
je 0x51c574
mov ecx, dword [esp + 0x2c]
call fcn.00420240
test eax, eax
je 0x51c574
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
push ecx
push ebp
push edx
mov edx, dword [esp + 0x34]
mov ecx, esi
call fcn.0051a570
test eax, eax
jne 0x51c574
mov eax, dword [0x5940f4]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ecx, dword [esp + 0x28]
jmp 0x51c542
lea ecx, [esp + 0x70]
push ecx
push 0xffffffffffffffff
push 0x59fbc0
push esi
call edi
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
sub eax, edx
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
sub eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar ebx, 1
sar eax, 1
sub eax, ebx
mov ebx, 0x15
add edx, ebx
push 0x820
mov dword [esp + 0x14], edx
add ecx, eax
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push 0x59fbc0
dec ecx
push esi
mov dword [esp + 0x2c], ecx
call edi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
inc edx
sub ecx, ebx
test eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
jne 0x51c38d
mov eax, dword [esp + 0x48]
test eax, eax
je 0x51c399
lea eax, [esp + 0x38]
push eax
push esi
call dword [sym.imp.USER32.dll_InvertRect]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov edi, dword [eax + 0x704]
mov ebx, dword [eax + 0x700]
mov eax, dword [0x59f694]
mov ecx, dword [esp + 0x14]
add edx, 3
test eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], edx
jne 0x51c3e0
mov eax, dword [0x5a1afc]
push 0x1c
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
test eax, eax
mov dword [0x59f694], eax
je case.default.0x51c431
lea ecx, [esp + 0x7c]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x51c41b
mov ecx, dword [esp + 0x80]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x84]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebp, edx
mov dword [esp + 0x20], ecx
jmp 0x51c428
mov ebp, 0x10
mov dword [esp + 0x20], 0xe
cmp ebx, 9
ja case.default.0x51c431
jmp dword [ebx*4 + 0x51c6a8]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0xa40]
test eax, eax
je 0x51c44a
xor edi, edi
jmp 0x51c4b2
mov edi, ebp
imul edi, edi, 0xb
jmp 0x51c4b2
mov edi, ebp
jmp 0x51c4b2
cmp edi, 1
je 0x51c46c
cmp edi, 2
je 0x51c46c
cmp edi, 3
lea edi, [ebp + ebp*2]
je 0x51c4b2
shl edi, 1
jmp 0x51c4b2
lea edi, [ebp + ebp]
jmp 0x51c4b2
cmp edi, 1
jne 0x51c480
lea edi, [ebp*4]
jmp 0x51c4b2
lea edi, [ebp + ebp*4]
jmp 0x51c4b2
lea edi, [ebp + ebp*8]
jmp 0x51c4b2
mov edi, ebp
imul edi, edi, 7
jmp 0x51c4b2
lea edi, [ebp*8]
jmp 0x51c4b2
lea edi, [ebp + ebp*4]
shl edi, 1
jmp 0x51c4b2
lea edi, [ebp + ebp*2]
shl edi, 2
jmp 0x51c4b2
mov edi, ebp
imul edi, edi, 0xd
test esi, esi
je case.default.0x51c431
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebx, eax
test ebx, ebx
je case.default.0x51c431
mov eax, dword [0x59f694]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
push 0xff00ff
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push edx
push esi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
push eax
push ebp
push 0
mov edx, edi
mov ecx, ebx
call fcn.00473090
mov eax, dword [0x5918a8]
test eax, eax
je 0x51c574
mov ecx, dword [esp + 0x2c]
call fcn.00420240
test eax, eax
je 0x51c574
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
push ecx
push ebp
push edx
mov edx, dword [esp + 0x54]
mov ecx, esi
call fcn.0051a570
test eax, eax
jne 0x51c574
mov eax, dword [0x5940f4]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ecx, dword [esp + 0x48]
mov edi, eax
mov eax, dword [esp + 0x24]
add ebp, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x20]
push edi
lea edx, [esp + 0x5c]
push edx
add ecx, eax
push esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], eax
call dword [sym.imp.USER32.dll_FillRect]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x30]
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [esp + 0x50]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov edx, dword [esp + 0x4c]
push edx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xa1c]
test ecx, ecx
je 0x51c673
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
cmp dword [0x589be8], 2
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ecx
jl 0x51c625
sub eax, 6
lea ecx, [eax + 1]
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x5940f8]
push ecx
push 1
push edi
push eax
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.00524600
mov edx, dword [0x5940fc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x14]
push 1
inc ecx
push eax
push ecx
mov ecx, esi
call fcn.00524600
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x84
ret 4
cmp edx, 0xf
jle 0x51c673
sub edx, 6
lea edi, [edx + 1]
mov dword [esp + 0x18], edi
mov edi, dword [0x5940f8]
sub ecx, eax
push edi
add ecx, 2
push ecx
push 1
push eax
mov ecx, esi
mov dword [esp + 0x20], edx
call fcn.00524600
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x5940fc]
push edx
mov edx, dword [esp + 0x14]
sub ecx, eax
add ecx, 2
push ecx
push 1
push eax
inc edx
mov ecx, esi
call fcn.00524600
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x84
ret 4