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

Disassembly:
sub esp, 0x58
push ebx
mov ebx, dword [esp + 0x60]
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
push ebp
push esi
push edi
mov edi, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x411d3d
call fcn.0045fdc5
mov eax, dword [ebx + 0xc]
cmp byte [eax + 0x10], 0
je 0x412226
mov esi, dword [edi]
mov ebx, dword [edi + 0x14]
mov edi, dword [ebx]
mov ebp, esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebp
jmp 0x411d70
test esi, esi
je 0x411d78
cmp esi, ebp
je 0x411d7d
call fcn.0045fdc5
cmp ebx, dword [esp + 0x34]
je 0x41217a
test esi, esi
jne 0x411e1b
call fcn.0045fdc5
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x411da0
call fcn.0045fdc5
mov edi, dword [edi]
mov dword [esp + 0x3c], edi
test esi, esi
je 0x411dae
cmp esi, esi
je 0x411db3
call fcn.0045fdc5
cmp ebx, edi
jne 0x411f55
test ebp, ebp
jne 0x411e22
call fcn.0045fdc5
xor eax, eax
mov ecx, dword [esp + 0x34]
cmp ecx, dword [eax + 0x14]
jne 0x411dd4
call fcn.0045fdc5
mov eax, dword [esp + 0x6c]
mov ebp, dword [eax + 0xc]
cmp ebp, dword [eax + 0x10]
jbe 0x411de5
call fcn.0045fdc5
mov edx, dword [esp + 0x6c]
mov esi, dword [edx]
mov eax, dword [esp + 0x34]
mov edi, dword [eax + 8]
mov ebx, esi
mov dword [esp + 0x24], ebp
test esi, esi
jne 0x411e27
call fcn.0045fdc5
xor eax, eax
mov ecx, edi
shl ecx, 4
sub ecx, edi
lea edi, [ebp + ecx*4]
cmp edi, dword [eax + 0x10]
ja 0x411e32
test esi, esi
je 0x411e2b
mov esi, dword [esi]
jmp 0x411e2d
mov eax, dword [esi]
jmp 0x411d96
mov eax, dword [ebp]
jmp 0x411dc6
mov eax, dword [esi]
jmp 0x411e03
xor esi, esi
cmp edi, dword [esi + 0xc]
jae 0x411e37
call fcn.0045fdc5
mov esi, dword [esp + 0x10]
neg esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
test ebx, ebx
jne 0x411e6b
call fcn.0045fdc5
xor eax, eax
mov edx, esi
shl edx, 4
sub edx, esi
lea edi, [edi + edx*4]
mov dword [esp + 0x18], edi
cmp edi, dword [eax + 0x10]
ja 0x411e76
test ebx, ebx
je 0x411e6f
mov ebx, dword [ebx]
jmp 0x411e71
mov eax, dword [ebx]
jmp 0x411e50
xor ebx, ebx
cmp edi, dword [ebx + 0xc]
jae 0x411e7b
call fcn.0045fdc5
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
cmp dword [ecx + 0xc], eax
jbe 0x411e90
call fcn.0045fdc5
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x411ef3
call fcn.0045fdc5
xor eax, eax
mov ecx, dword [esp + 0x34]
cmp ecx, dword [eax + 0x14]
jne 0x411ead
call fcn.0045fdc5
mov eax, dword [esp + 0x6c]
mov edi, dword [eax + 0xc]
cmp edi, dword [eax + 0x10]
jbe 0x411ebe
call fcn.0045fdc5
mov edx, dword [esp + 0x6c]
mov esi, dword [edx]
mov eax, dword [esp + 0x34]
mov ebx, dword [eax + 8]
mov ebp, esi
mov dword [esp + 0x54], edi
test esi, esi
jne 0x411ef7
call fcn.0045fdc5
xor eax, eax
mov ecx, ebx
shl ecx, 4
sub ecx, ebx
lea edi, [edi + ecx*4]
cmp edi, dword [eax + 0x10]
ja 0x411f02
test esi, esi
je 0x411efb
mov esi, dword [esi]
jmp 0x411efd
mov eax, dword [eax]
jmp 0x411e9f
mov eax, dword [esi]
jmp 0x411edc
xor esi, esi
cmp edi, dword [esi + 0xc]
jae 0x411f07
call fcn.0045fdc5
test ebp, ebp
jne 0x411f23
call fcn.0045fdc5
xor eax, eax
add edi, 0x3c
cmp edi, dword [eax + 0x10]
ja 0x411f2f
test ebp, ebp
je 0x411f28
mov eax, dword [ebp]
jmp 0x411f2a
mov eax, dword [ebp]
jmp 0x411f12
xor eax, eax
cmp edi, dword [eax + 0xc]
jae 0x411f34
call fcn.0045fdc5
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
push edx
mov byte [esp + 0x20], 0
mov ecx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
lea ebx, [esp + 0x64]
jmp 0x412143
test ebp, ebp
jne 0x411fb5
call fcn.0045fdc5
xor eax, eax
mov edx, dword [esp + 0x34]
cmp edx, dword [eax + 0x14]
jne 0x411f6e
call fcn.0045fdc5
mov eax, dword [esp + 0x6c]
mov ebp, dword [eax + 0xc]
cmp ebp, dword [eax + 0x10]
jbe 0x411f7f
call fcn.0045fdc5
mov eax, dword [esp + 0x6c]
mov esi, dword [eax]
mov ecx, dword [esp + 0x34]
mov edi, dword [ecx + 8]
mov ebx, esi
mov dword [esp + 0x54], ebp
test esi, esi
jne 0x411fba
call fcn.0045fdc5
xor eax, eax
mov edx, edi
shl edx, 4
sub edx, edi
lea edi, [ebp + edx*4]
cmp edi, dword [eax + 0x10]
ja 0x411fc5
test esi, esi
je 0x411fbe
mov esi, dword [esi]
jmp 0x411fc0
mov eax, dword [ebp]
jmp 0x411f60
mov eax, dword [esi]
jmp 0x411f9d
xor esi, esi
cmp edi, dword [esi + 0xc]
jae 0x411fca
call fcn.0045fdc5
mov esi, dword [esp + 0x10]
neg esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], edi
test ebx, ebx
jne 0x411ffe
call fcn.0045fdc5
xor eax, eax
mov ecx, esi
shl ecx, 4
sub ecx, esi
lea edi, [edi + ecx*4]
mov dword [esp + 0x20], edi
cmp edi, dword [eax + 0x10]
ja 0x412009
test ebx, ebx
je 0x412002
mov ebx, dword [ebx]
jmp 0x412004
mov eax, dword [ebx]
jmp 0x411fe3
xor ebx, ebx
cmp edi, dword [ebx + 0xc]
jae 0x41200e
call fcn.0045fdc5
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41206f
call fcn.0045fdc5
xor eax, eax
mov edx, dword [esp + 0x3c]
cmp edx, dword [eax + 0x14]
jne 0x41202b
call fcn.0045fdc5
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax + 0xc]
cmp ebx, dword [eax + 0x10]
jbe 0x41203c
call fcn.0045fdc5
mov eax, dword [esp + 0x6c]
mov esi, dword [eax]
mov ecx, dword [esp + 0x3c]
mov edi, dword [ecx + 8]
test esi, esi
jne 0x412073
call fcn.0045fdc5
xor eax, eax
mov edx, edi
shl edx, 4
sub edx, edi
lea ecx, [ebx + edx*4]
mov dword [esp + 0x18], ecx
cmp ecx, dword [eax + 0x10]
ja 0x41207e
test esi, esi
je 0x412077
mov esi, dword [esi]
jmp 0x412079
mov eax, dword [eax]
jmp 0x41201d
mov eax, dword [esi]
jmp 0x412054
xor esi, esi
cmp ecx, dword [esi + 0xc]
jae 0x412083
call fcn.0045fdc5
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4120e6
call fcn.0045fdc5
xor eax, eax
mov ecx, dword [esp + 0x34]
cmp ecx, dword [eax + 0x14]
jne 0x4120a0
call fcn.0045fdc5
mov eax, dword [esp + 0x6c]
mov edi, dword [eax + 0xc]
cmp edi, dword [eax + 0x10]
jbe 0x4120b1
call fcn.0045fdc5
mov edx, dword [esp + 0x6c]
mov esi, dword [edx]
mov eax, dword [esp + 0x34]
mov ebx, dword [eax + 8]
mov ebp, esi
mov dword [esp + 0x54], edi
test esi, esi
jne 0x4120ea
call fcn.0045fdc5
xor eax, eax
mov ecx, ebx
shl ecx, 4
sub ecx, ebx
lea edi, [edi + ecx*4]
cmp edi, dword [eax + 0x10]
ja 0x4120f5
test esi, esi
je 0x4120ee
mov esi, dword [esi]
jmp 0x4120f0
mov eax, dword [eax]
jmp 0x412092
mov eax, dword [esi]
jmp 0x4120cf
xor esi, esi
cmp edi, dword [esi + 0xc]
jae 0x4120fa
call fcn.0045fdc5
test ebp, ebp
jne 0x412116
call fcn.0045fdc5
xor eax, eax
add edi, 0x3c
cmp edi, dword [eax + 0x10]
ja 0x412122
test ebp, ebp
je 0x41211b
mov eax, dword [ebp]
jmp 0x41211d
mov eax, dword [ebp]
jmp 0x412105
xor eax, eax
cmp edi, dword [eax + 0xc]
jae 0x412127
call fcn.0045fdc5
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
push edx
mov byte [esp + 0x2c], 0
mov ecx, dword [esp + 0x2c]
push eax
push ecx
mov ecx, dword [esp + 0x24]
lea ebx, [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x78]
push edx
push eax
push ecx
push edi
call fcn.00412960
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
add esp, 0x1c
inc dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov esi, edx
mov ebp, edx
mov edi, eax
jmp 0x411d70
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x4a9ca4]
mov eax, ecx
mov ecx, dword [0x4a9ca8]
sub eax, dword [esp + 0x10]
mov esi, ecx
mov edi, edx
mov ebx, ecx
sub esp, 0x3c
mov ecx, esp
mov dword [ecx], edx
mov ebp, dword [0x4a9ca8]
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], esi
mov byte [ecx + 0x10], 0
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x1c], 0
mov byte [ecx + 0x20], 0
mov edx, dword [0x4a9c98]
mov dword [ecx + 0x24], edx
mov edx, dword [0x4a9c9c]
mov dword [ecx + 0x28], edx
movzx edx, byte [0x4a9ca0]
mov byte [ecx + 0x2c], dl
mov edx, dword [0x4a9c98]
mov dword [ecx + 0x30], edx
mov edx, dword [0x4a9c9c]
mov dword [ecx + 0x34], edx
movzx edx, byte [0x4a9ca0]
mov byte [ecx + 0x38], dl
mov ecx, dword [esp + 0xa8]
call fcn.00411c40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov ecx, dword [ebx + 0x10]
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
mov ecx, dword [0x4a9ca8]
sar edx, 5
mov eax, edx
shr eax, 0x1f
sub esp, 0x3c
add eax, edx
mov edx, dword [0x4a9ca4]
mov esi, eax
sub esi, dword [edi + 0x18]
mov eax, esp
push ecx
push edx
push ecx
push edx
call fcn.00411510
mov eax, esi
mov ecx, ebx
call fcn.00411c40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret