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

Disassembly:
push edi
push esi
push ebx
sub esp, 0x10
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00405090
lea eax, [esi + edi*4]
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.004041a0
add dword [ebx], eax
jae 0x4140c2
add dword [ebx + 4], 1
lea ebx, [ebx + 4]
jb 0x4140b9
add esp, 0x10
pop ebx
pop esi
pop edi
ret
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x80]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x84]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x88]
cmp eax, 0xc
jle 0x414115
test al, 1
je 0x414150
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x24], esi
jg 0x414550
mov eax, dword [esp + 0x24]
mov dword [esp + 0x80], edi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x78], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp 0x414070
mov esi, dword [esp + 0x24]
sar esi, 1
lea ecx, [esi*4]
lea eax, [edi + ecx]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
cmp esi, eax
jge 0x414820
lea edx, [ebx + ecx]
sub eax, esi
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], eax
call fcn.004041a0
mov ecx, dword [esp + 0x3c]
test eax, eax
jne 0x4142b3
cmp edi, ebx
je 0x4141e4
lea edx, [ecx*4]
lea eax, [ebx + edx]
add edx, edi
cmp esi, ecx
jle 0x4141d3
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x44]
lea esi, [esi]
mov ebx, dword [eax]
add eax, 4
add edx, 4
mov dword [edx - 4], ebx
cmp eax, ecx
jne 0x4141c0
mov ebx, dword [esp + 0x38]
xor edx, edx
mov eax, edi
add dword [eax], edx
jae 0x4141e4
add dword [eax + 4], 1
lea eax, [eax + 4]
jb 0x4141db
mov edx, dword [esp + 0x2c]
cmp esi, edx
jl 0x4142c8
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.004140d0
lea ecx, [esi + 1]
mov edx, dword [esp + 0x44]
mov dword [esp + 4], ebx
lea eax, [edi + ecx*8]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 0x38], eax
call fcn.00404250
mov ecx, dword [esp + 0x48]
test eax, eax
je 0x414380
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 0x3c]
mov ebp, ecx
mov dword [esp + 0x4c], edi
jmp 0x414279
mov edx, dword [ebx + eax*4]
mov edi, dword [esp + 0x38]
add eax, 1
lea ecx, [edx - 1]
mov dword [edi + eax*4 - 4], ecx
test edx, edx
jne 0x414370
cmp esi, eax
jg 0x414260
mov ecx, ebp
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
mov eax, 1
lea ecx, [esi + ecx*2]
lea edx, [edi + ecx*4]
jmp 0x4143c9
mov eax, dword [ebx + ecx*4]
add ecx, 1
add eax, 1
mov dword [edi + ecx*4 - 4], eax
jne 0x4141a1
cmp esi, ecx
jg 0x4142a0
mov edx, 1
jmp 0x4141d5
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
sub edx, esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], ecx
call fcn.004041a0
mov edx, dword [esp + 0x38]
test eax, eax
jne 0x414760
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x30], ecx
je 0x414356
mov eax, dword [esp + 0x28]
lea ecx, [edx*4]
add eax, ecx
add ecx, dword [esp + 0x30]
cmp esi, edx
jle 0x414343
mov dword [esp + 0x38], ebx
mov edx, dword [esp + 0x48]
lea esi, [esi]
nop
mov ebx, dword [eax]
add eax, 4
add ecx, 4
mov dword [ecx - 4], ebx
cmp edx, eax
jne 0x414330
mov ebx, dword [esp + 0x38]
xor edx, edx
mov eax, dword [esp + 0x30]
add dword [eax], edx
jae 0x414356
add dword [eax + 4], 1
lea eax, [eax + 4]
jb 0x41434d
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
mov edx, esi
add ecx, eax
jmp 0x4141f8
mov dword [esp + 0x3c], eax
mov ecx, ebp
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
nop
lea ecx, [esi + ecx*2]
lea edx, [edi + ecx*4]
cmp ebx, dword [esp + 0x38]
je 0x4146c8
mov eax, dword [esp + 0x3c]
shl eax, 2
add ebx, eax
add eax, dword [esp + 0x38]
cmp esi, dword [esp + 0x3c]
jle 0x4143c7
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x44]
nop
mov edx, dword [ebx]
add ebx, 4
add eax, 4
mov dword [eax - 4], edx
cmp ebx, esi
jne 0x4143b0
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
xor eax, eax
mov dword [edx], 0
mov edx, dword [esp + 0x38]
add dword [edx], eax
jae 0x4143e0
add dword [edx + 4], 1
lea edx, [edx + 4]
jb 0x4143d7
mov edx, dword [esp + 0x38]
mov eax, dword [edx + esi*4]
add eax, esi
mov dword [esp + 0x44], eax
cmp esi, dword [esp + 0x2c]
jl 0x414618
mov edx, dword [esp + 0x2c]
cmp esi, 0x234
jle 0x414700
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], esi
mov dword [esp + 0x3c], edx
call fcn.0041b140
mov edx, dword [esp + 0x3c]
mov ecx, eax
mov eax, 1
shl eax, cl
sub eax, 1
test esi, eax
je 0x414441
lea esi, [esi]
nop
sar eax, 1
sub ecx, 1
test esi, eax
jne 0x414438
cmp ecx, 3
jg 0x4147e8
cmp dword [esp + 0x28], ebx
je 0x414700
lea eax, [esi + 1]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00405090
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov ebx, dword [edi + eax*2]
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 4], edi
mov dword [esp], edi
call fcn.00404250
mov edx, dword [esp + 0x30]
add ebx, eax
mov eax, edi
mov dword [edx], 0
add dword [eax], ebx
jae 0x4144a9
add dword [eax + 4], 1
lea eax, [eax + 4]
jb 0x4144a0
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], ebp
call fcn.00404247
mov ebx, dword [ebp]
mov dword [esp + 0xc], 1
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
and ebx, 1
mov dword [esp], ebp
add ebx, eax
call fcn.00404300
mov ecx, dword [esp + 0x40]
mov eax, ebx
shr ebx, 1
shl eax, 0x1f
or dword [ebp + ecx - 4], eax
mov eax, ebp
add dword [eax], ebx
jae 0x414501
add dword [eax + 4], 1
lea eax, [eax + 4]
jb 0x4144f8
mov ebx, dword [esp + 0x2c]
lea eax, [ebp + ecx]
add ebx, dword [esp + 0x34]
cmp ebx, dword [esp + 0x24]
jl 0x414860
mov ecx, dword [esp + 0x30]
mov ebx, dword [ecx]
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.00404250
add ebx, eax
mov eax, ebp
sub dword [eax], ebx
jae 0x414542
sub dword [eax + 4], 1
lea eax, [eax + 4]
jb 0x414539
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x2c]
add esi, dword [esp + 0x34]
cmp esi, dword [esp + 0x24]
jle 0x414909
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00404360
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edi
mov dword [esp], ebp
sub esi, eax
lea ebx, [edi + eax*4]
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
call fcn.004041a0
test eax, eax
je 0x4145d0
mov edx, dword [esp + 0x24]
jmp 0x4145bf
mov eax, dword [edi + esi*4]
add esi, 1
add eax, 1
mov dword [ebp + esi*4 - 4], eax
jne 0x4145d0
cmp edx, esi
jg 0x4145b0
mov edx, 1
jmp 0x414601
cmp edi, ebp
je 0x414542
lea eax, [esi*4]
lea edx, [edi + eax]
add eax, ebp
cmp dword [esp + 0x24], esi
jle 0x4145ff
lea esi, [esi]
mov ecx, dword [edx]
add edx, 4
add eax, 4
mov dword [eax - 4], ecx
cmp ebx, edx
jne 0x4145f0
xor edx, edx
mov eax, ebp
add dword [eax], edx
jae 0x414610
add dword [eax + 4], 1
lea eax, [eax + 4]
jb 0x414607
jmp 0x414542
lea ebx, [edi + ecx*4 + 4]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov dword [esp], ebx
sub ecx, esi
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x40]
add ecx, eax
mov dword [esp + 8], ecx
mov dword [esp + 0x48], ecx
call fcn.00404250
mov ecx, dword [esp + 0x3c]
test eax, eax
jne 0x4147a0
mov eax, esi
shl eax, 4
lea eax, [edi + eax + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x4146d8
lea edx, [ecx*4]
add eax, edx
add edx, ebx
cmp esi, ecx
jle 0x414693
mov dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0x48]
mov ebx, dword [eax]
add eax, 4
add edx, 4
mov dword [edx - 4], ebx
cmp ecx, eax
jne 0x414680
mov ebx, dword [esp + 0x4c]
xor eax, eax
mov ecx, dword [esp + 0x3c]
mov edx, ebx
mov dword [ecx], 0
add dword [edx], eax
jae 0x4146ae
add dword [edx + 4], 1
lea edx, [edx + 4]
jb 0x4146a5
mov edx, dword [ebx + esi*4]
add edx, esi
cmp esi, 0x234
jle 0x41444a
jmp 0x41440b
mov dword [edx], 0
jmp 0x4143e0
mov eax, dword [esp + 0x3c]
mov dword [eax], 0
mov eax, dword [esp + 0x28]
mov edx, dword [eax + esi*4]
add edx, esi
cmp esi, 0x234
jg 0x41440b
lea esi, [esi]
nop
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x10], edx
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp + 0x3c], edx
call fcn.00404360
mov edx, dword [esp + 0x3c]
mov eax, ebx
add eax, edx
sub eax, esi
mov edx, eax
xor eax, eax
cmp esi, edx
mov ebx, edx
setl al
sub ebx, eax
jne 0x414934
mov eax, dword [esp + 0x30]
mov dword [eax], 0
xor eax, eax
jmp 0x4144ab
mov dword [esp + 0x38], ebp
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x28]
jmp 0x414784
mov eax, dword [ebp + edx*4]
add edx, 1
add eax, 1
mov dword [ecx + edx*4 - 4], eax
jne 0x414900
cmp esi, edx
jg 0x414770
mov ebp, dword [esp + 0x38]
mov edx, 1
jmp 0x414345
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x28]
jmp 0x4147c6
mov eax, dword [ebp + ecx*4]
add ecx, 1
lea edx, [eax - 1]
mov dword [ebx + ecx*4 - 4], edx
test eax, eax
jne 0x4148f0
cmp esi, ecx
jg 0x4147b0
mov eax, esi
mov ebp, dword [esp + 0x3c]
shl eax, 4
lea eax, [edi + eax + 0xc]
mov dword [esp + 0x3c], eax
mov eax, 1
jmp 0x414695
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.0041b1d0
mov ebx, dword [esp + 0x30]
mov dword [ebx], eax
jmp 0x4144ab
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
mov dword [esp + 8], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.004140d0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], eax
jmp 0x4143f7
mov edx, ebx
mov dword [esp + 8], edi
sub edx, esi
mov dword [esp + 4], ebp
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 0x28], edx
call fcn.00404250
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov esi, dword [esi]
mov dword [esp + 0x10], eax
lea ecx, [edx*4]
mov eax, dword [esp + 0x24]
lea edx, [edi + ecx]
lea edi, [ebp + ecx]
mov dword [esp + 8], edx
sub eax, ebx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
call fcn.004042f7
add esi, eax
mov eax, dword [ebp]
mov edx, eax
sub edx, esi
mov dword [ebp], edx
cmp esi, eax
jbe 0x414542
mov eax, 1
jmp 0x4148e6
mov edx, dword [ebp + eax*4]
lea ecx, [edx - 1]
mov dword [ebp + eax*4], ecx
add eax, 1
test edx, edx
jne 0x414542
cmp ebx, eax
jg 0x4148d0
jmp 0x414542
mov ebp, dword [esp + 0x3c]
jmp 0x414654
mov ebp, dword [esp + 0x38]
jmp 0x414304
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x78], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00404360
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.00404250
test eax, eax
jne 0x414971
mov ebx, dword [esp + 0x30]
mov dword [ebx], 0
jmp 0x4144ab
mov eax, dword [edi + ebx*4]
add ebx, 1
lea edx, [eax - 1]
mov dword [edi + ebx*4 - 4], edx
test eax, eax
jne 0x41499a
cmp esi, ebx
jg 0x414960
mov edx, 1
mov ebx, dword [esp + 0x30]
mov eax, edi
mov dword [ebx], 0
add dword [eax], edx
jae 0x414993
add dword [eax + 4], 1
lea eax, [eax + 4]
jb 0x41498a
mov eax, dword [ebx]
jmp 0x4144ab
xor edx, edx
jmp 0x41497a