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

Disassembly:
sub esp, 0x40
push ebx
push ebp
mov ebp, dword [esp + 0x54]
push esi
push edi
mov ebx, dword [esp + 0x54]
mov eax, dword [ebp + 0x3c]
mov esi, dword [eax + 0x1c]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov edi, dword [eax + 0x24]
mov dword [esp + 0x18], esi
mov esi, dword [eax + 0x20]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x38], esi
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x30]
xor esi, esi
mov dword [esp + 0x3c], ecx
test eax, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], edi
jle 0x40e5ce
mov eax, dword [esp + 0x18]
mov edx, edi
sub edx, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x14], edx
cmp dword [edx + eax], 0xfffffffe
jle 0x40e5b3
mov ecx, dword [eax]
mov edi, dword [0x442640]
cmp ecx, edi
jle 0x40e5b3
mov eax, ecx
cdq
idiv edi
mov edi, eax
mov eax, dword [0x442640]
imul eax, edi
sub ecx, eax
test ecx, ecx
jle 0x40e58d
inc edi
push esi
push ebp
call fcn.0041dfb0
mov ecx, dword [0x442640]
push eax
push 1
push 0
push esi
push ecx
push edi
push ebx
call fcn.00418f30
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x78]
add esp, 0x24
mov ecx, dword [ebp + 0x30]
inc esi
add eax, 4
cmp esi, ecx
mov dword [esp + 0x54], eax
jl 0x40e565
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], 0
mov esi, dword [eax + 0x10]
mov dword [esp + 0x54], esi
mov esi, dword [eax + 0xc]
test esi, esi
jle 0x40e81d
mov esi, dword [esp + 0x38]
mov eax, edx
sub esi, edx
sub eax, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x28], eax
jmp 0x40e610
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add eax, edx
cmp dword [eax + esi], 2
jl 0x40e7ed
cmp dword [eax], 0
jge 0x40e7ed
mov eax, dword [ebp + 0x30]
xor edx, edx
test eax, eax
jle 0x40e7ed
mov eax, dword [esp + 0x18]
mov esi, edi
sub eax, edi
mov dword [esp + 0x34], eax
cmp dword [eax + esi], 1
jl 0x40e678
cmp dword [esi], 0xffffffff
jl 0x40e678
mov eax, dword [ebp + 0x2c]
mov ecx, dword [0x442664]
mov edi, 1
mov eax, dword [ecx + eax*4]
add eax, edx
mov ecx, eax
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x54]
sar eax, 5
test dword [ecx + eax*4 + 4], edi
jne 0x40e688
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x30]
inc edx
add esi, 4
cmp edx, ecx
jl 0x40e642
jmp 0x40e7ed
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
push eax
push eax
push str.NET__s_SRC__s.Z0_DST
push ebx
call fcn.0041fe90
xor edi, edi
add esp, 0x10
mov dword [0x442688], edi
mov eax, dword [ebp + 0x30]
cmp eax, edi
jle 0x40e7df
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ecx, eax
sub edx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], edx
jmp 0x40e6cb
mov edx, dword [esp + 0x14]
cmp dword [ecx], 1
jl 0x40e7c8
cmp dword [ecx + edx], 0xffffffff
jl 0x40e7c8
mov eax, dword [ebp + 0x2c]
mov ecx, dword [0x442664]
mov esi, dword [esp + 0x54]
mov edx, 1
mov eax, dword [ecx + eax*4]
add eax, edi
mov ecx, eax
and ecx, 0x1f
shl edx, cl
mov ecx, eax
sar ecx, 5
test dword [esi + ecx*4 + 4], edx
je 0x40e7c8
mov edx, dword [esp + 0x30]
mov ecx, dword [edx]
cmp ecx, 1
jne 0x40e737
push ebx
call fcn.0041bb80
push edi
push ebp
call fcn.0041dfb0
push eax
push str.__s.A0
push ebx
call fcn.0041fe90
add esp, 0x18
jmp 0x40e7c8
mov edx, dword [0x442640]
jle 0x40e77a
cmp ecx, edx
jg 0x40e77e
mov ecx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
call fcn.0041c310
push ebx
mov esi, eax
call fcn.0041bb80
add esp, 0x10
push esi
push edi
push ebp
call fcn.0041dfb0
add esp, 8
push eax
push str.__s.A_d
push ebx
call fcn.0041fe90
add esp, 0x10
jmp 0x40e7c8
cmp ecx, edx
jle 0x40e7c8
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x5c]
push edx
push eax
call fcn.0041c310
mov esi, dword [0x442640]
mov ecx, eax
cdq
idiv esi
push ebx
imul esi, eax
sub ecx, esi
mov dword [esp + 0x44], eax
mov esi, ecx
call fcn.0041bb80
mov ecx, dword [esp + 0x44]
mov edx, dword [0x44269c]
push esi
push ecx
push 0
push edi
push edx
push str.__s_d__d__d.A_d
push ebx
call fcn.0041fe90
add esp, 0x2c
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp + 0x30]
inc edi
add ecx, 4
cmp edi, eax
mov dword [esp + 0x30], ecx
jl 0x40e6c7
push 0x43aea0
push ebx
call fcn.0041fe90
add esp, 8
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x2c]
mov eax, dword [ecx]
add esi, 4
mov dword [esp + 0x2c], esi
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x40e604
mov ecx, dword [ebp + 0x2c]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x1c], eax
jle 0x40ec88
mov dword [esp + 0x2c], eax
jmp 0x40e838
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov edx, 1
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x48]
sar eax, 5
test dword [ecx + eax*4 + 4], edx
je 0x40ec69
mov eax, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], ecx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 0xc]
cmp edx, ecx
jle 0x40ec69
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
sub eax, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], eax
mov edx, ecx
jmp 0x40e89d
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
cmp dword [eax + edx], 0xfffffffe
jle 0x40ec23
mov edx, dword [edx]
cmp edx, 1
jl 0x40ec23
mov ecx, dword [esp + 0x2c]
mov edi, 1
lea eax, [ecx + 1]
mov ecx, eax
and ecx, 0x1f
shl edi, cl
sar eax, 5
mov ecx, edi
mov edi, dword [esp + 0x54]
test dword [edi + eax*4 + 4], ecx
jne 0x40ec23
mov ecx, dword [esp + 0x2c]
mov eax, 1
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x2c]
sar ecx, 5
test dword [edi + ecx*4 + 4], eax
je 0x40ec23
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x40e9c8
cmp edx, 1
jne 0x40e995
mov eax, dword [ebp + 0x30]
xor edx, edx
test eax, eax
jle 0x40ec23
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esi
sub eax, esi
mov dword [esp + 0x14], eax
jmp 0x40e931
mov eax, dword [esp + 0x14]
cmp dword [esi + eax], 0xfffffffe
jle 0x40e981
mov eax, dword [ebp + 0x2c]
mov ecx, dword [0x442664]
mov edi, 1
mov eax, dword [ecx + eax*4]
add eax, edx
mov ecx, eax
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0x54]
sar eax, 5
test dword [ecx + eax*4 + 4], edi
je 0x40e981
cmp dword [esi], 1
jg 0x40e99b
mov esi, dword [ebp + 0x20]
mov ecx, edx
mov eax, edx
and ecx, 0x1f
mov edi, 1
sar eax, 5
shl edi, cl
test dword [esi + eax*4 + 4], edi
jne 0x40e99b
mov esi, dword [esp + 0x34]
mov eax, dword [ebp + 0x30]
inc edx
add esi, 4
cmp edx, eax
mov dword [esp + 0x34], esi
jl 0x40e92d
jmp 0x40ec23
jle 0x40ec23
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x442698]
push ecx
push eax
push ecx
push eax
push str.NET__s_d_SRC__s_d.ZN0_DST
push ebx
mov dword [esp + 0x48], 1
call fcn.0041fe90
add esp, 0x18
mov dword [0x442688], 0
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
cmp eax, 1
jne 0x40eb38
mov eax, dword [ebp + 0x30]
xor edi, edi
test eax, eax
jle 0x40ec23
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
jmp 0x40e9fc
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x2c]
mov eax, dword [0x442664]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x24]
add eax, edi
cmp dword [ecx + edx], 0xfffffffe
jle 0x40eb1c
mov esi, dword [esp + 0x54]
mov ecx, eax
and ecx, 0x1f
mov edx, 1
shl edx, cl
mov ecx, eax
sar ecx, 5
test dword [esi + ecx*4 + 4], edx
je 0x40eb1c
mov edx, dword [esp + 0x24]
cmp dword [edx], 1
jne 0x40ea82
mov esi, dword [ebp + 0x20]
mov ecx, edi
mov edx, edi
and ecx, 0x1f
mov ebp, 1
sar edx, 5
shl ebp, cl
test dword [esi + edx*4 + 4], ebp
je 0x40ea7e
push ebx
call fcn.0041bb80
mov ebp, dword [esp + 0x60]
push edi
push ebp
call fcn.0041dfb0
push eax
push str.__s.A0
push ebx
call fcn.0041fe90
add esp, 0x18
jmp 0x40eb1c
mov ebp, dword [esp + 0x5c]
mov ecx, dword [esp + 0x24]
mov edx, dword [0x442640]
mov ecx, dword [ecx]
cmp ecx, 1
jle 0x40eace
cmp ecx, edx
jg 0x40ead2
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x5c]
push edx
push eax
call fcn.0041c310
push ebx
mov esi, eax
call fcn.0041bb80
add esp, 0x10
push esi
push edi
push ebp
call fcn.0041dfb0
add esp, 8
push eax
push str.__s.A_d
push ebx
call fcn.0041fe90
add esp, 0x10
jmp 0x40eb1c
cmp ecx, edx
jle 0x40eb1c
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
push eax
push ecx
push edx
call fcn.0041c310
mov esi, dword [0x442640]
mov ecx, eax
cdq
idiv esi
push ebx
imul esi, eax
sub ecx, esi
mov dword [esp + 0x44], eax
mov esi, ecx
call fcn.0041bb80
mov eax, dword [esp + 0x44]
mov ecx, dword [0x44269c]
push esi
push eax
push 0
push edi
push ecx
push str.__s_d__d__d.A_d
push ebx
call fcn.0041fe90
add esp, 0x2c
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 0x30]
inc edi
add ecx, 4
cmp edi, eax
mov dword [esp + 0x24], ecx
jl 0x40e9f8
jmp 0x40ec23
cmp eax, dword [0x442644]
jg 0x40ebdc
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
or ecx, 0xffffffff
mov edi, dword [edx + eax]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1c]
mov edx, ecx
mov esi, edi
mov edi, dword [0x442670]
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0041c2a0
mov edx, dword [0x442680]
push eax
push 0x43af04
push edx
call fcn.004205e7
mov edi, dword [0x442680]
or ecx, 0xffffffff
xor eax, eax
push ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [0x442670]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0041bb80
mov eax, dword [0x442670]
push eax
push 0x43af00
push ebx
call fcn.0041fe90
add esp, 0x24
jmp 0x40ec23
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
push ecx
push edx
call fcn.0041c2a0
mov edi, dword [0x442644]
mov ecx, eax
cdq
idiv edi
push ebx
mov esi, eax
imul edi, esi
sub ecx, edi
mov edi, ecx
call fcn.0041bb80
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x442684]
push edi
push esi
push 0
push eax
push ecx
push str.__s_d__d__d.A_d
push ebx
call fcn.0041fe90
add esp, 0x28
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [eax]
mov esi, dword [eax + 0xc]
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x28]
inc ecx
add edx, 4
cmp ecx, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edx
jl 0x40e899
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40ec69
push 0x43aea0
push ebx
call fcn.0041fe90
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x2c]
inc eax
add edx, 2
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], edx
jl 0x40e834
mov eax, dword [esp + 0x58]
xor edi, edi
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x40ed05
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
sub ecx, esi
mov dword [esp + 0x40], ecx
mov ecx, dword [esi]
mov edx, dword [0x442644]
cmp ecx, edx
jle 0x40eced
mov eax, ecx
cdq
idiv dword [0x442644]
mov edx, dword [0x442644]
mov ebp, edx
imul ebp, eax
sub ecx, ebp
test ecx, ecx
jle 0x40ecd1
inc eax
mov ecx, dword [esp + 0x40]
mov ecx, dword [esi + ecx]
push ecx
push 0
push 0
push edi
push edx
push eax
push ebx
call fcn.00418f30
mov eax, dword [esp + 0x74]
add esp, 0x1c
mov edx, dword [eax]
mov ecx, dword [esp + 0x54]
inc edi
add esi, 4
lea edx, [ecx + edx*4]
mov ecx, dword [eax + 0xc]
cmp edi, ecx
mov dword [esp + 0x54], edx
jl 0x40ecaa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret