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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x540
mov esi, esp
mov dword [esi + 0x528], ebp
lea eax, [esi + 0x530]
mov dword [esi + 0x28], edx
mov ebx, dword [ebp + 8]
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x41a900
mov edx, dword fs:[0]
mov dword [eax], edx
mov dword fs:[0], eax
mov al, byte [section..data]
mov dword [esi + 0x48], ecx
cmp al, 0xff
je 0x402f7e
cmp al, 1
jne 0x402fcd
lea edi, [esi + 0xb0]
mov edx, ebx
mov ecx, edi
call fcn.004088e7
mov ebx, 0xb0
lea eax, [esi + 0x3c0]
mov edx, edi
lea ecx, [eax + ebx]
call fcn.0040124e
push ebx
push edi
lea eax, [esi + 0x3c0]
jmp 0x40331b
and dword [esi + 0x538], 0
lea ecx, [esi + 0x250]
call fcn.004088ad
lea ecx, [esi + 0xb0]
call fcn.004088ca
mov ebx, dword [esi + 0x258]
mov eax, ebx
not eax
test eax, 0xc000000
jne 0x402fb8
call fcn.00402202
and eax, 2
shr eax, 1
jmp 0x402fba
xor eax, eax
shr ebx, 0x19
and ebx, 1
and bl, al
mov byte [section..data], bl
mov ebx, dword [ebp + 8]
jne 0x402f4d
lea edi, [esi + 0xb0]
push 0x160
push 0
push edi
call fcn.0041beb0
add esp, 0xc
and dword [esi + 0x538], 0
push 8
pop edx
mov ecx, edi
mov dword [esi + 0x20], edx
push ebx
push ebx
call fcn.004077df
pop eax
pop ecx
xor ebx, ebx
push 0xf
pop eax
lea ecx, [esi + 0xd0]
xor edi, edi
mov dword [esi + 8], eax
mov dword [esi + 0x24], ecx
cmp ebx, 0xa
je 0x4031ea
lea eax, [ebx + 1]
mov dword [esi + 0x1c], eax
lea eax, [edi + 8]
mov dword [esi + 0xc], eax
push 0xfffffffffffffff8
pop eax
mov ecx, dword [esi + 8]
test eax, eax
je 0x403049
cmp dword [esi + 8], 0x57
ja 0x40398d
mov edx, dword [esi + ecx*4 + 0x90]
inc eax
mov dword [esi + ecx*4 + 0xb0], edx
dec ecx
jmp 0x403029
mov edx, dword [esi + 0xc]
and dword [esi + 0x538], 0
lea eax, [edi + 0x10]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], edi
lea ecx, [esi + 0xb0]
push 0x42b390
mov dword [esi + 0x18], eax
push eax
call fcn.00407a6b
pop ecx
pop edi
mov ecx, eax
call fcn.00407a9d
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0xb0]
push 0x42b3a0
push dword [esi + 0x18]
call fcn.00407a6b
pop ecx
pop edi
mov ecx, eax
call fcn.00407dd8
cmp dword [esi + 0x10], 8
jae 0x4030c6
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0xb0]
push 0x42b3f0
push dword [esi + 0x18]
call fcn.00407a6b
pop ecx
pop edi
mov edi, dword [esi + 0x10]
cmp edi, edx
jb 0x40316d
jmp 0x403a43
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0xb0]
push 0x42b3b0
push dword [esi + 0x18]
call fcn.00407a6b
pop ecx
pop edi
mov edi, dword [esi + 0x10]
lea ecx, [edi - 8]
cmp ecx, edx
jae 0x403a17
mov edx, dword [esi + 0xc]
xor byte [eax + edi*4 - 0x1f], 0xc0
lea ecx, [esi + 0xb0]
push 0x42b3c0
push dword [esi + 0x18]
call fcn.00407a6b
pop ecx
pop edi
mov edi, dword [esi + 0x10]
lea ecx, [edi - 7]
cmp ecx, edx
jae 0x403a36
mov edx, dword [esi + 0xc]
xor byte [eax + edi*4 - 0x1b], 0xc0
lea ecx, [esi + 0xb0]
push 0x42b3d0
push dword [esi + 0x18]
call fcn.00407a6b
pop ecx
pop edi
mov edi, dword [esi + 0x10]
lea ecx, [edi - 5]
cmp ecx, edx
jae 0x403a52
mov edx, dword [esi + 0xc]
xor byte [eax + edi*4 - 0x13], 0xc0
lea ecx, [esi + 0xb0]
push 0x42b3e0
push dword [esi + 0x18]
call fcn.00407a6b
pop ecx
pop edi
mov edi, dword [esi + 0x10]
add edi, 0xfffffffc
cmp edi, edx
jae 0x403a27
mov ecx, dword [esi + 0x14]
xor byte [eax + edi*4 + 1], 0xc0
xor eax, eax
cmp eax, 8
je 0x4031d7
lea edx, [ecx + eax - 0x58]
test edx, edx
je 0x4039a7
lea edx, [ecx + eax - 0x50]
test edx, edx
je 0x4039c3
mov ebx, dword [esi + 0x24]
mov ecx, dword [ebx + eax*4]
rol ecx, 0x12
and ecx, 0x3030303
xor ecx, dword [ebx + eax*4 - 0x20]
mov edi, ecx
lea edx, [ecx*4]
shl edi, 6
and edx, 0xfcfcfcfc
and edi, 0xc0c0c0c0
xor edi, ecx
shl ecx, 4
and ecx, 0xf0f0f0f0
xor ecx, edx
xor edi, ecx
mov ecx, dword [esi + 0x14]
mov dword [ebx + eax*4], edi
inc eax
jmp 0x403177
add dword [esi + 8], 8
add dword [esi + 0x24], 0x20
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0xc]
jmp 0x40300e
push 2
pop eax
lea ebx, [esi + 0xb0]
sub eax, 1
jb 0x4032b4
mov edx, dword [esi + 0x20]
and dword [esi + 0x538], 0
mov dword [esi + 0x14], eax
mov ecx, ebx
lea eax, [edx + 8]
push 0x42b360
mov dword [esi + 8], eax
push eax
call fcn.00407a6b
pop ecx
pop edi
mov ecx, eax
call fcn.00407e30
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 8]
lea ecx, [esi + 0xb0]
add eax, 0x10
push 0x42b370
mov dword [esi + 8], eax
push eax
call fcn.00407a6b
pop ecx
pop edi
mov ecx, eax
call fcn.00407e6d
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 8]
lea ecx, [esi + 0xb0]
add eax, 0x18
push 0x42b380
push eax
call fcn.00407a6b
pop ecx
pop edi
add dword [esi + 0x20], 0x20
lea ebx, [esi + 0xb0]
shl edx, 2
test edx, edx
je 0x4032ac
mov edi, dword [eax]
add edx, 0xfffffffc
mov ecx, edi
shr ecx, 4
xor ecx, edi
and ecx, 0xc0f0300
xor edi, ecx
shl ecx, 4
xor ecx, edi
mov edi, ecx
shr edi, 2
xor edi, ecx
and edi, 0x33003300
xor ecx, edi
shl edi, 2
xor edi, ecx
mov dword [eax], edi
add eax, 4
jmp 0x403274
mov eax, dword [esi + 0x14]
jmp 0x4031f3
lea ecx, [esi + 0x1d0]
push 8
pop edx
call fcn.00407e30
xor ecx, ecx
inc ecx
cmp ecx, 0xb
je 0x403309
and dword [esi + 0x538], 0
lea edx, [ecx*8]
lea eax, [ecx*8 + 8]
mov dword [esi + 8], ecx
lea ecx, [esi + 0xb0]
push 0x42b350
push eax
call fcn.00407a6b
mov ecx, dword [esi + 8]
add esp, 8
inc ecx
mov dword [esi + 8], ecx
mov ecx, eax
call fcn.00407dd8
mov ecx, dword [esi + 8]
jmp 0x4032c5
lea eax, [esi + 0x3c0]
push 0x160
lea ecx, [esi + 0xb0]
push ecx
push eax
call fcn.0041b930
add esp, 0xc
xorps xmm0, xmm0
xor eax, eax
movaps xmmword [esi + 0xb0], xmm0
cmp eax, 2
je 0x403375
mov edx, 0x42adc6
mov dword [esi + 8], eax
lea ecx, [eax*8]
mov dword [esi + 0x538], 1
push 0x42a9ac
call fcn.00401107
pop ecx
cmp edx, 7
jbe 0x403a04
movsd xmm0, qword [eax]
mov eax, dword [esi + 8]
movsd qword [esi + eax*8 + 0xb0], xmm0
inc eax
jmp 0x403330
lea edi, [esi + 0x230]
mov eax, 0x160
lea ebx, [esi + 0x250]
lea ecx, [esi + 0x3c0]
movaps xmm0, xmmword [edi - 0x180]
movaps xmmword [ebx + 0x160], xmm0
push eax
push ecx
push ebx
call fcn.0041b930
add esp, 0xc
mov ecx, edi
call fcn.00407765
lea eax, [esi + 0xb0]
push 0x170
push ebx
push eax
call fcn.0041b930
add esp, 0xc
mov eax, dword [esi + 0x28]
and dword [edi - 0xc], 0
and dword [edi - 0x10], 0
lea ecx, [esi + 0x38]
mov byte [edi + 0x10], 0
mov dword [esi + 0x538], 2
mov edx, dword [eax + 8]
mov dword [esi + 0x30], edx
call fcn.00408fe2
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x30]
mov eax, dword [eax + 4]
mov edx, eax
mov dword [esi + 0x44], eax
test edi, edi
je 0x403955
cmp edi, 0x10
push 0x10
pop eax
cmovb eax, edi
mov dword [esi + 0x538], 3
lea ecx, [esi + 0x250]
push 0x42aa20
push eax
push edi
call fcn.00402183
add esp, 0xc
mov edx, dword [esi + 0x258]
mov edi, dword [esi + 0x25c]
cmp dword [esi + 0x254], 0xf
jbe 0x4033f6
mov eax, dword [esi + 0x250]
mov dword [esi + 0x4c], edx
mov dword [esi + 0x30], edi
lea ecx, [esi + 0x250]
mov dword [esi + 8], eax
push 8
pop edx
call fcn.00408fe2
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x254]
movsd xmm0, qword [eax]
mov dword [esi + 0x1c], edi
movsd qword [edi], xmm0
mov bl, byte [esi + 0x240]
mov eax, dword [esi + 0x250]
cmp dword [esi + 0x224], 0xffffffff
movzx ecx, bl
mov dword [esi + 0x2c], eax
mov dword [esi + 8], ebx
jne 0x4034bd
mov eax, dword [esi + 0x220]
test bl, bl
push 8
pop edx
je 0x4034a2
cmp bl, 9
jb 0x4034c4
mov ebx, dword [esi + 8]
lea edx, [ecx - 8]
mov edi, edx
shr edx, 4
not eax
and edi, 0xf
cmp edi, 1
mov edi, dword [esi + 0x1c]
sbb edx, 0xffffffff
cmp edx, eax
ja 0x403a5f
test bl, bl
push 8
pop ebx
je 0x403521
lea edx, [esi + 0x230]
mov byte [esi + 7], 1
mov dword [esi + 0x538], 4
push 0x42a458
call fcn.00401107
pop ecx
cmp edx, 8
jbe 0x403500
push 0xfffffffffffffff8
pop ecx
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 8]
test ecx, ecx
je 0x403512
mov dl, byte [eax + ecx + 8]
xor byte [edi + ecx + 8], dl
inc ecx
jmp 0x4034f1
mov edi, dword [esi + 0x1c]
xor ecx, ecx
cmp edx, ecx
je 0x40351a
mov bl, byte [eax + ecx]
xor byte [edi + ecx], bl
inc ecx
jmp 0x403505
add bl, 8
jmp 0x40390f
add edi, edx
push 8
pop ebx
sub ebx, edx
mov ecx, ebx
lea eax, [esi + 0x210]
mov dword [esi + 0x18], edi
shr ecx, 4
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x5c], ecx
mov al, byte [section..data]
mov dword [esi + 0x34], ebx
cmp al, 1
jne 0x4035ae
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x50]
mov byte [esi + 7], 1
mov dword [esi + 0x538], 4
call fcn.00402815
mov ebx, dword [esi + 0x34]
and ebx, 0xf
je 0x40390f
mov dword [esi + 8], ebx
mov al, byte [section..data]
mov dword [esi + 0x538], 4
cmp al, 1
jne 0x403885
lea eax, [esi + 0x230]
mov byte [esi + 7], 1
lea ecx, [esi + 0xb0]
lea edx, [esi + 0x210]
push eax
call fcn.004027ed
pop eax
jmp 0x4038ee
shr ebx, 5
xor eax, eax
mov dword [esi + 0x10], ebx
cmp dword [esi + 0x10], eax
je 0x403701
lea ecx, [esi + 0x3c0]
mov dword [esi + 0x14], eax
call fcn.00407772
lea ecx, [esi + 0x250]
call fcn.00407772
xor eax, eax
cmp eax, 0x20
mov dword [esi + 0x538], 4
je 0x40362b
lea ecx, [esi + 0x80]
lea edx, [esi + 0x210]
mov dword [esi + 8], eax
mov byte [esi + 7], 1
call fcn.00402dff
movsd xmm0, qword [esi + 0x80]
mov eax, dword [esi + 8]
movsd xmm1, qword [esi + 0x88]
movsd qword [esi + eax + 0x258], xmm1
movsd qword [esi + eax + 0x250], xmm0
add eax, 0x10
jmp 0x4035da
lea eax, [esi + 0x250]
mov byte [esi + 7], 1
lea ecx, [esi + 0x3c0]
lea edx, [esi + 0xb0]
push eax
call fcn.00407eb8
pop eax
mov eax, dword [esi + 0x14]
lea edi, [esi + 0x60]
mov ecx, edi
shl eax, 5
add eax, dword [esi + 0x18]
movsd xmm0, qword [eax + 0x18]
mov dword [esi + 0x24], eax
movsd qword [esi + 0x268], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x260], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 0x258], xmm1
movsd qword [esi + 0x250], xmm0
call fcn.00407772
mov ecx, edi
xor eax, eax
lea edx, [esi + 0x3c0]
lea ebx, [esi + 0x250]
cmp eax, 2
je 0x4036ce
mov dword [esi + 8], eax
push 0xfffffffffffffff0
pop edi
test edi, edi
je 0x4036bf
mov al, byte [edx + edi + 0x10]
xor al, byte [ebx + edi + 0x10]
mov byte [ecx + edi + 0x10], al
inc edi
jmp 0x4036ac
mov eax, dword [esi + 8]
add ebx, 0x10
add edx, 0x10
add ecx, 0x10
inc eax
jmp 0x4036a1
movsd xmm0, qword [esi + 0x78]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x14]
movsd qword [ecx + 0x18], xmm0
inc eax
movsd xmm0, qword [esi + 0x70]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esi + 0x60]
movsd xmm1, qword [esi + 0x68]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jmp 0x4035b6
mov ebx, dword [esi + 0xc]
lea edi, [esi + 0x80]
mov ecx, edi
and ebx, 1
call fcn.00407772
mov byte [esi + 7], 1
mov dword [esi + 0x538], 4
mov dword [esi + 0x20], ebx
mov ecx, ebx
mov edx, edi
push 2
call fcn.004010d6
pop ecx
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], edx
mov ecx, dword [esi + 0x10]
cmp ecx, 2
jae 0x403a90
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x14]
shl ecx, 4
and eax, 0xfffffffe
add ecx, ebx
shl eax, 4
mov dword [esi + 0x24], ecx
add eax, dword [esi + 0x18]
mov dword [esi + 0xc], eax
mov eax, ebx
cmp eax, dword [esi + 0x24]
je 0x403804
lea ecx, [esi + 0xa0]
lea edx, [esi + 0x210]
mov dword [esi + 8], eax
mov byte [esi + 7], 1
call fcn.00402dff
lea ecx, [esi + 0x3c0]
call fcn.00407772
lea ecx, [esi + 0x250]
lea edx, [esi + 0xa0]
mov byte [esi + 7], 1
call fcn.004011a6
movsd xmm0, qword [esi + 0x250]
movsd xmm1, qword [esi + 0x258]
lea eax, [esi + 0x3c0]
mov byte [esi + 7], 1
lea ecx, [esi + 0x250]
lea edx, [esi + 0xb0]
movsd qword [esi + 0x3c8], xmm1
movsd qword [esi + 0x3c0], xmm0
push eax
call fcn.00407eb8
pop eax
movsd xmm0, qword [esi + 0x250]
movsd xmm1, qword [esi + 0x258]
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0x14]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
add eax, 0x10
jmp 0x40375f
xor edi, edi
cmp edi, dword [esi + 0x20]
je 0x403566
cmp edi, dword [esi + 0x10]
je 0x4039e1
lea eax, [edi + 1]
shl edi, 4
lea ecx, [esi + 0x250]
add edi, dword [esi + 0xc]
mov dword [esi + 8], eax
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esi + 0x3c8], xmm1
movsd qword [esi + 0x3c0], xmm0
call fcn.00407765
push 0xfffffffffffffff0
pop eax
test eax, eax
je 0x403864
mov cl, byte [ebx + eax + 0x10]
xor cl, byte [esi + eax + 0x3d0]
mov byte [esi + eax + 0x260], cl
inc eax
jmp 0x40384b
movsd xmm0, qword [esi + 0x250]
movsd xmm1, qword [esi + 0x258]
add ebx, 0x10
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
mov edi, dword [esi + 8]
jmp 0x403806
lea ecx, [esi + 0x60]
lea edx, [esi + 0x210]
mov byte [esi + 7], 1
call fcn.00402dff
lea edi, [esi + 0x3c0]
mov ecx, edi
call fcn.00407772
mov ecx, edi
lea edx, [esi + 0x60]
mov byte [esi + 7], 1
call fcn.004011a6
lea eax, [esi + 0x3c0]
mov byte [esi + 7], 1
lea ecx, [esi + 0x250]
lea edx, [esi + 0xb0]
push eax
call fcn.00407eb8
pop eax
movsd xmm0, qword [esi + 0x250]
movsd xmm1, qword [esi + 0x258]
lea eax, [esi + 0x230]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x18]
mov ebx, dword [esi + 8]
and eax, 0xfffffff0
add edx, eax
xor eax, eax
cmp ebx, eax
je 0x40390f
mov cl, byte [esi + eax + 0x230]
xor byte [edx + eax], cl
inc eax
jmp 0x4038fe
mov dword [esi + 0x538], 5
mov byte [esi + 0x240], bl
lea ecx, [esi + 0x38]
push 8
pop edx
call fcn.00408ca7
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
movsd xmm0, qword [ecx]
movsd qword [eax + edx], xmm0
add edx, 8
mov dword [esi + 0x40], edx
mov edx, dword [esi + 0x2c]
call fcn.00401d77
mov edi, dword [esi + 0x30]
mov edx, dword [esi + 0x4c]
jmp 0x4033f6
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x48]
movsd xmm0, qword [esi + 0x38]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov al, byte [section..data]
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x44]
mov ecx, dword [eax]
call fcn.00408f0a
mov eax, dword [esi + 0x530]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
and dword [esi + 0x538], 0
push 0x58
pop edx
push 0x42b5a0
call fcn.004291f0
pop eax
jmp 0x403aa7
and dword [esi + 0x538], 0
add ecx, eax
push 0x58
pop edx
push 0x42b500
call fcn.004291f0
pop eax
jmp 0x403aa7
and dword [esi + 0x538], 0
lea ecx, [ecx + eax + 8]
push 0x58
pop edx
push 0x42b510
call fcn.004291f0
pop eax
jmp 0x403aa7
mov ecx, dword [esi + 0x10]
mov byte [esi + 7], 1
mov dword [esi + 0x538], 4
mov edx, ecx
push 0x42a3e0
call fcn.004291f0
pop eax
jmp 0x403aa7
push 8
pop ecx
push 0x42a9bc
call fcn.00429240
pop eax
jmp 0x403aa7
push 0x42b5b0
call fcn.004291f0
pop eax
jmp 0x403aa7
mov ecx, edi
push 0x42b5b0
call fcn.004291f0
pop eax
jmp 0x403aa7
push 0x42b5b0
call fcn.004291f0
pop eax
jmp 0x403aa7
mov ecx, edi
push 0x42b5b0
call fcn.004291f0
pop eax
jmp 0x403aa7
push 0x42b5b0
call fcn.004291f0
pop eax
jmp 0x403aa7
mov byte [esi + 7], 1
mov dword [esi + 0x538], 4
lea eax, [esi + 0x250]
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x42a8d4
push 0x42a5c4
push eax
call fcn.004293d6
add esp, 0xc
jmp 0x403aa7
mov byte [esi + 7], 1
push 0x3b
pop edx
mov ecx, 0x42a826
push 0x42a864
call fcn.00429295
pop eax
ud2