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

Disassembly:
push 0xffffffffffffffff
push 0x5d81d6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf8
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor edi, edi
mov ebp, dword [esi + 0x34]
mov dword [esp + 0x14], ebp
lea eax, [ebp - 1]
test eax, eax
jle 0x4a72de
lea ebx, [edi + 1]
cmp ebx, ebp
mov dword [esp + 0x50], ebx
jge 0x4a72d1
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
imul eax, edi
mov edx, dword [eax + ecx]
mov eax, dword [esi + 0x24]
imul eax, ebx
mov dword [esp + 0x4c], edx
mov edx, dword [eax + ecx]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x34], edx
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
imul edx, edi
imul eax, ebx
mov ebp, ecx
mov edx, dword [edx + ebp]
mov ebp, dword [eax + ecx]
mov eax, dword [esi + 0xc]
cmp edx, ebp
jge 0x4a7168
imul eax, edi
jmp 0x4a716b
imul eax, ebx
mov ecx, dword [esi + 8]
mov ebp, ecx
mov edx, dword [eax + ecx]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0xc]
imul edx, edi
imul eax, ebx
mov edx, dword [edx + ebp + 4]
mov ebp, dword [eax + ecx + 4]
mov eax, dword [esi + 0xc]
cmp edx, ebp
jge 0x4a7197
imul eax, edi
jmp 0x4a719a
imul eax, ebx
mov ecx, dword [esi + 8]
mov ebp, ecx
mov edx, dword [eax + ecx + 4]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0xc]
imul edx, edi
imul eax, ebx
mov edx, dword [edx + ebp + 8]
mov ebp, dword [eax + ecx + 8]
mov eax, dword [esi + 0xc]
cmp edx, ebp
jle 0x4a71c7
imul eax, edi
jmp 0x4a71ca
imul eax, ebx
mov ecx, dword [esi + 8]
mov ebp, ecx
mov edx, dword [eax + ecx + 8]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0xc]
imul edx, edi
imul eax, ebx
mov edx, dword [edx + ebp + 0xc]
mov ebp, dword [eax + ecx + 0xc]
cmp edx, ebp
jle 0x4a71fb
mov eax, dword [esi + 0xc]
imul eax, edi
mov edx, dword [eax + ecx + 0xc]
jmp 0x4a7208
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
imul edx, ebx
mov edx, dword [edx + eax + 0xc]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x10]
sub ecx, ebp
mov ebp, dword [esp + 0x34]
imul eax, ecx
mov ecx, eax
sub ecx, ebp
mov ebp, dword [esp + 0x4c]
sub ecx, ebp
test ecx, ecx
jg 0x4a72c0
mov ecx, dword [esi + 0x24]
mov ebp, dword [esi + 0x20]
imul ecx, edi
push edx
mov edx, dword [esp + 0x14]
mov dword [ecx + ebp], eax
push edx
mov edx, dword [esi + 0xc]
mov eax, dword [esp + 0x28]
imul edx, edi
mov ecx, dword [esp + 0x24]
push eax
mov eax, dword [esi + 8]
push ecx
add edx, eax
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x18]
cmp ebx, eax
je 0x4a72b0
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
imul ecx, eax
mov eax, dword [esi + 0x24]
mov ebp, edx
imul eax, ebx
mov ecx, dword [ecx + edx]
mov dword [eax + ebp], ecx
mov edx, dword [esi + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 8]
imul edx, eax
add edx, ecx
mov ecx, dword [esi + 0xc]
imul ecx, ebx
mov ebp, dword [esi + 8]
add ecx, ebp
mov ebp, dword [edx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ebp, dword [esp + 0x14]
dec ebp
dec eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
jmp 0x4a72c5
mov ebp, dword [esp + 0x14]
inc ebx
cmp ebx, ebp
jl 0x4a7128
mov ebx, dword [esp + 0x50]
mov edi, ebx
lea eax, [ebp - 1]
cmp edi, eax
jl 0x4a7115
mov dword [esi + 0x34], ebp
mov ecx, dword [esi + 0x40]
xor edi, edi
cmp ecx, edi
je 0x4a796f
mov eax, dword [esi + 0x44]
sub eax, ecx
sar eax, 4
cmp eax, edi
mov dword [esp + 0x34], eax
jle 0x4a796f
mov cl, byte [esp + 0x4b]
xor ebx, ebx
mov byte [esp + 0x38], cl
xor ecx, ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
cmp ebp, edi
mov dword [esp + 0x110], edi
jle 0x4a7354
jmp 0x4a732b
mov ecx, dword [esp + 0x40]
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 8]
imul eax, edi
add eax, ebx
push eax
push 1
push ecx
lea ecx, [esp + 0x44]
call fcn.004a7c10
inc edi
cmp edi, ebp
jl 0x4a7327
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a7841
mov dword [esp + 0x4c], 0
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x40]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + eax + 4]
mov edi, dword [ecx + eax + 4]
mov cl, byte [esp + 0x4b]
mov eax, edi
mov edx, dword [edx]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [edi + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
xor edx, edx
xor edi, edi
mov byte [esp + 0x24], cl
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov byte [esp + 0x110], 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x40]
test ebx, ebx
je 0x4a76b7
mov ebp, dword [esp + 0x54]
mov ecx, eax
sub ecx, ebx
sar ecx, 4
cmp ebp, ecx
jae 0x4a76b7
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + ebx + 4]
mov edi, dword [edx + ebx]
mov ebp, dword [edx + ebx + 8]
lea eax, [edx + ebx]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ebx, dword [eax + 0xc]
cmp edx, ecx
jle 0x4a7681
cmp ebx, dword [esp + 0x20]
jl 0x4a7681
cmp dword [esp + 0x14], edi
jle 0x4a7681
mov edx, dword [esp + 0x1c]
cmp ebp, edx
jl 0x4a7681
cmp edx, edi
jg 0x4a743e
cmp dword [esp + 0x20], ecx
jg 0x4a754b
cmp ebp, dword [esp + 0x14]
jg 0x4a743e
cmp ebx, dword [esp + 0x18]
jle 0x4a7692
cmp dword [esp + 0x20], ecx
jg 0x4a754b
cmp ebx, dword [esp + 0x18]
jg 0x4a74b3
cmp edi, edx
jge 0x4a7484
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
push ebx
push eax
push ecx
lea edx, [esp + 0xd4]
push edi
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0xc8]
push eax
push 1
push ecx
lea ecx, [esp + 0x30]
call fcn.004a7c10
mov eax, dword [esp + 0x14]
cmp eax, ebp
jge 0x4a7692
mov edx, dword [esp + 0x10]
push ebx
push ebp
push edx
lea ecx, [esp + 0xf4]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetRect]
lea edx, [esp + 0xe8]
push edx
jmp 0x4a7682
cmp edi, edx
jge 0x4a74ed
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
lea ecx, [esp + 0x94]
push edi
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x88]
push edx
push 1
push eax
lea ecx, [esp + 0x30]
call fcn.004a7c10
mov eax, dword [esp + 0x14]
cmp eax, ebp
jge 0x4a7521
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push ecx
push ebp
push edx
lea ecx, [esp + 0x64]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x58]
push edx
push 1
push eax
lea ecx, [esp + 0x30]
call fcn.004a7c10
mov ecx, dword [esp + 0x18]
push ebx
push ebp
push ecx
lea edx, [esp + 0xb4]
push edi
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0xa8]
push eax
push 1
push ecx
jmp 0x4a7689
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
push edx
push ebp
push eax
lea ecx, [esp + 0x74]
push edi
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x68]
push edx
push 1
push eax
lea ecx, [esp + 0x30]
call fcn.004a7c10
cmp ebx, dword [esp + 0x18]
jg 0x4a75e4
mov eax, dword [esp + 0x14]
cmp eax, ebp
jge 0x4a75ae
mov ecx, dword [esp + 0x20]
push ebx
push ebp
mov edx, eax
push ecx
lea eax, [esp + 0x84]
push edx
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x78]
push ecx
push 1
push edx
jmp 0x4a7689
mov eax, dword [esp + 0x1c]
cmp edi, eax
jge 0x4a7692
mov ecx, dword [esp + 0x20]
push ebx
push eax
push ecx
lea edx, [esp + 0xa4]
push edi
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x98]
push eax
push 1
push ecx
jmp 0x4a7689
mov eax, dword [esp + 0x1c]
cmp edi, eax
jge 0x4a761e
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
lea edx, [esp + 0xc4]
push edi
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0xb8]
push eax
push 1
push ecx
lea ecx, [esp + 0x30]
call fcn.004a7c10
cmp dword [esp + 0x14], ebp
jge 0x4a765a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
push edx
push ebp
push eax
lea edx, [esp + 0xe4]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0xd8]
push eax
push 1
push ecx
lea ecx, [esp + 0x30]
call fcn.004a7c10
mov edx, dword [esp + 0x18]
push ebx
push ebp
push edx
lea eax, [esp + 0x104]
push edi
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xf8]
push ecx
push 1
push edx
jmp 0x4a7689
push eax
mov eax, dword [esp + 0x30]
push 1
push eax
lea ecx, [esp + 0x30]
call fcn.004a7c10
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
inc ecx
add eax, 0x10
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
jmp 0x4a73bc
test edi, edi
jne 0x4a76bf
xor ecx, ecx
jmp 0x4a76c6
mov ecx, edx
sub ecx, edi
sar ecx, 4
test ebx, ebx
jne 0x4a76ce
xor eax, eax
jmp 0x4a76d3
sub eax, ebx
sar eax, 4
cmp ecx, eax
ja 0x4a7736
cmp edi, edx
mov ecx, ebx
mov eax, edi
je 0x4a7707
mov edi, eax
mov ebx, ecx
add eax, 0x10
add ecx, 0x10
mov ebp, dword [edi]
cmp eax, edx
mov dword [ebx], ebp
mov ebp, dword [edi + 4]
mov dword [ebx + 4], ebp
mov ebp, dword [edi + 8]
mov dword [ebx + 8], ebp
mov edi, dword [edi + 0xc]
mov dword [ebx + 0xc], edi
jne 0x4a76df
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x4a771f
xor eax, eax
shl eax, 4
add eax, ebx
mov dword [esp + 0x40], eax
jmp 0x4a77fc
mov eax, dword [esp + 0x2c]
sub eax, ecx
sar eax, 4
shl eax, 4
add eax, ebx
mov dword [esp + 0x40], eax
jmp 0x4a77fc
lea ecx, [esp + 0x24]
call fcn.00544320
lea ecx, [esp + 0x38]
mov edi, eax
call fcn.004a7ba0
cmp edi, eax
ja 0x4a77a1
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0x38]
call fcn.00544320
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov edi, eax
push ecx
shl edi, 4
add edi, ebx
push edi
push edx
call fcn.004a8200
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
add esp, 0xc
push eax
push ecx
push edi
lea ecx, [esp + 0x44]
call fcn.004a7bc0
lea ecx, [esp + 0x24]
call fcn.00544320
mov ecx, dword [esp + 0x3c]
shl eax, 4
add eax, ecx
mov dword [esp + 0x40], eax
jmp 0x4a77fc
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push edx
push eax
lea ecx, [esp + 0x40]
call fcn.0045c9d0
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0054a2d0
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00544320
test eax, eax
jge 0x4a77d0
xor eax, eax
shl eax, 4
push eax
call fcn.0054a1d0
mov edx, dword [esp + 0x30]
add esp, 4
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x38]
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
call fcn.004a7bc0
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x110], 0
push ecx
call fcn.0054a2d0
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x40]
xor eax, eax
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
add ecx, 0x10
dec eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], eax
jne 0x4a7368
mov ecx, dword [esp + 0x40]
xor eax, eax
cmp ebx, eax
jne 0x4a784d
mov dword [esp + 0x10], eax
jmp 0x4a7856
sub ecx, ebx
sar ecx, 4
mov dword [esp + 0x10], ecx
mov dword [esi + 0x34], eax
mov edi, dword [esi + 0x44]
mov ebp, dword [esi + 0x40]
cmp edi, edi
mov dword [esp + 0x34], edi
je 0x4a787f
mov ebx, edi
push edi
mov ecx, ebp
call fcn.004433f0
add edi, 0x10
add ebp, 0x10
cmp edi, ebx
jne 0x4a7869
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi + 0x44]
mov edi, ebp
cmp ebp, eax
mov dword [esp + 0x34], eax
je 0x4a78a1
mov ebx, eax
mov edx, dword [edi]
push 0
mov ecx, edi
call dword [edx]
add edi, 0x10
cmp edi, ebx
jne 0x4a788e
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x44], ebp
cmp dword [esi + 0x38], edi
jge 0x4a7933
lea ebx, [esi + 4]
xor eax, eax
inc edi
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], eax
mov eax, edi
shl eax, 4
push eax
call fcn.0054a1d0
add esp, 4
mov ecx, ebx
mov ebp, eax
call fcn.00544140
xor eax, eax
cmp ebp, eax
je 0x4a78ed
mov dword [ebx + 4], ebp
mov dword [ebx + 8], 0x10
mov dword [ebx + 0x14], ebx
mov dword [ebx + 0x10], ebx
mov dword [ebx + 0xc], edi
lea ebx, [esi + 0x1c]
lea ecx, [edi*4]
push ecx
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], eax
call fcn.0054a1d0
add esp, 4
mov ecx, ebx
mov ebp, eax
call fcn.00544140
test ebp, ebp
je 0x4a7926
mov dword [ebx + 4], ebp
mov dword [ebx + 8], 4
mov dword [ebx + 0x14], ebx
mov dword [ebx + 0x10], ebx
mov dword [ebx + 0xc], edi
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x3c]
mov dword [esi + 0x38], edx
mov edi, edx
test edi, edi
jle 0x4a7966
mov ebp, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + ebx + 0xc]
mov edx, dword [edi + ebx + 8]
push eax
mov eax, dword [edi + ebx + 4]
push ecx
mov ecx, dword [edi + ebx]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004a6d20
mov ebx, dword [esp + 0x3c]
add edi, 0x10
dec ebp
jne 0x4a793d
push ebx
call fcn.0054a2d0
add esp, 4
mov ecx, dword [esp + 0x108]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x104
ret