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

Disassembly:
jmp 0x8977a0
jmp fcn.00897d10
jmp 0x8977d0
jmp 0x897c70
jmp 0x897650
jmp 0x897a40
jmp 0x897fa0
jmp 0x897800
sub esp, 0x14
push esi
push edi
mov edi, dword [esp + 0x24]
mov dword [esp + 8], ecx
cmp dword [edi + 0x24], 0
je 0x89774d
mov ecx, dword [esp + 0x20]
push ebx
push ebp
push edi
call fcn.00404327
mov esi, dword [edi + 0x24]
xorps xmm0, xmm0
movlpd qword [esp + 0x1c], xmm0
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
cmp esi, edi
je 0x8976b7
mov ecx, dword [esp + 0x10]
push esi
push dword [esp + 0x2c]
call fcn.00406a73
add ebp, eax
mov eax, dword [esi + 8]
adc ebx, edx
cmp esi, dword [eax + 0x54]
jne 0x8976b1
xor esi, esi
jmp 0x8976b3
mov esi, dword [esi]
cmp esi, edi
jne 0x897693
mov al, byte [edi + 0x20]
mov byte [esp + 0x2c], al
push dword [esp + 0x2c]
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x20]
push ebp
push ebx
call fcn.008973a0
add esp, 0x14
test al, al
je 0x897716
movzx eax, byte [esp + 0x2c]
xor ecx, ecx
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, ecx
cmovae edx, ecx
add eax, ebx
mov esi, edx
adc esi, ebp
add eax, 0xffffffff
adc esi, 0xffffffff
add ecx, 0xffffffff
not ecx
adc edx, 0xffffffff
and eax, ecx
not edx
and esi, edx
sub eax, ebx
sbb esi, ebp
jmp 0x897727
xorps xmm0, xmm0
movlpd qword [esp + 0x1c], xmm0
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
pop ebp
pop ebx
cmp eax, dword [edi + 0x28]
jne 0x897733
cmp esi, dword [edi + 0x2c]
je 0x89774d
mov ecx, dword [esp + 0x20]
push edi
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], esi
call fcn.0040b415
pop edi
mov al, 1
pop esi
add esp, 0x14
ret 8
pop edi
xor al, al
pop esi
add esp, 0x14
ret 8
mov ecx, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x10]
push edi
push dword [esp + 0x10]
mov esi, dword [edi + 0x2c]
call fcn.0040915b
mov ecx, eax
call fcn.00412837
cmp esi, dword [edi + 0x2c]
pop edi
setne al
pop esi
ret 8
mov ecx, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x10]
push edi
push dword [esp + 0x10]
mov esi, dword [edi + 0x38]
call fcn.0040915b
mov ecx, eax
call fcn.0041120c
cmp esi, dword [edi + 0x38]
pop edi
setne al
pop esi
ret 8
sub esp, 0x3c
mov edx, dword [esp + 0x40]
push ebx
push ebp
push esi
mov eax, dword [edx]
mov esi, ecx
push edi
mov edi, dword [esp + 0x54]
push edx
mov ebx, dword [eax]
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x60]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
push eax
call fcn.0041464b
push 0
push 0
lea ebp, [edi + 0x28]
mov byte [esp + 0x44], 0
lea ecx, [esp + 0x34]
mov dword [ebp + 4], 0
push 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 1
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0x9251c4
mov dword [esp + 0x54], ebp
call fcn.0040826f
mov dword [edi + 0x44], 0
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
test al, al
je 0x897939
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x24]
push dword [esp + 0x24]
push ebx
call fcn.0040d4e0
mov eax, dword [esp + 0x68]
add esp, 0x18
test eax, eax
je 0x897953
movzx eax, byte [eax + 0x897986]
jmp dword [eax*4 + 0x897974]
push 0
push 0
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x24]
push dword [esp + 0x24]
push ebx
call fcn.0040d4e0
add esp, 0x18
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
cmp eax, dword [ebp + 4]
setne bl
call fcn.00413223
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x3c
ret 8
sub esp, 0x44
mov edx, dword [esp + 0x48]
push ebx
push ebp
push esi
mov eax, dword [edx]
mov esi, ecx
push edi
mov edi, dword [esp + 0x5c]
push edx
mov ebx, dword [eax]
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x68]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x20]
push eax
call fcn.0041464b
mov eax, dword [edi + 0x64]
lea ecx, [esp + 0x34]
mov ebp, dword [edi + 0x60]
push 0
mov dword [esp + 0x5c], eax
lea eax, [edi + 0x28]
push 0
push 0
mov dword [esp + 0x20], eax
mov dword [eax + 4], 0
mov byte [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 1
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x9251c4
mov dword [esp + 0x5c], eax
call fcn.0040826f
mov dword [edi + 0x44], 0
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
test al, al
jne 0x897b0f
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x24]
mov ax, word [esi + 0x58]
push dword [esp + 0x24]
push dword [esp + 0x64]
push ebp
push ecx
mov ecx, esp
push ebx
mov word [ecx], ax
mov al, byte [esi + 0x5a]
mov byte [ecx + 2], al
call fcn.00401b3b
add esp, 0x1c
jmp 0x897bb8
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x2c]
mov ax, word [esi + 0x58]
push dword [esp + 0x2c]
push dword [esp + 0x6c]
push ebp
push ecx
mov ecx, esp
push ebx
mov word [ecx], ax
mov al, byte [esi + 0x5a]
mov byte [ecx + 2], al
call fcn.00402d47
mov edx, dword [edi + 0x68]
add esp, 0x24
test al, al
jne 0x897b4e
mov edx, dword [edx + 0xc]
mov eax, dword [esp + 0x5c]
dec eax
jmp dword [eax*4 + 0x897bdc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 4]
lea ecx, [esp + 0x34]
setne bl
call fcn.00413223
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x44
ret 8
mov edx, dword [esp + 8]
movzx eax, byte [edx + 0x1c]
add eax, 0xfffffffc
cmp eax, 8
ja case.0x897c80.5
jmp dword [eax*4 + 0x897ccc]
mov dword [esp + 8], edx
jmp 0x408391
mov dword [esp + 8], edx
jmp 0x40df7b
mov dword [esp + 8], edx
jmp 0x412f3a
mov dword [esp + 8], edx
jmp 0x41226f
mov dword [esp + 8], edx
jmp 0x40dca6
mov dword [esp + 8], edx
jmp 0x40a740
mov dword [esp + 8], edx
jmp 0x402d42
xor al, al
ret 8
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x3c]
lea eax, [esp + 0xc]
push ebp
push dword [esp + 0x3c]
mov ebp, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x24]
push eax
mov dword [esp + 0x10], ebp
call fcn.0041464b
test al, al
je 0x8981fa
push esi
push edi
push 0
lea eax, [ebx + 0x28]
mov byte [esp + 0x34], 0
lea ecx, [esp + 0x24]
mov dword [eax + 4], 0
push 0
push 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0x9251c4
mov dword [esp + 0x48], eax
call fcn.0040826f
cmp byte [ebx + 0x20], 0
mov ecx, dword [esp + 0x2c]
je 0x89812b
mov eax, dword [esp + 0x18]
xor esi, esi
mov edi, dword [esp + 0x1c]
jmp 0x89803b
mov eax, dword [esp + 0x44]
mov dl, al
and dl, 0x7f
shrd eax, edi, 7
mov bl, dl
mov byte [esp + 0x14], dl
mov dword [esp + 0x44], eax
and bl, 0x40
mov ebp, dword [esp + 0x44]
sar edi, 7
or eax, edi
jne 0x898083
test bl, bl
je 0x898090
mov bl, 1
inc esi
or dl, 0x80
mov byte [esp + 0x14], dl
cmp ecx, dword [esp + 0x28]
jb 0x89809b
push dword [esp + 0x14]
lea ecx, [esp + 0x24]
call fcn.0040c4b4
mov ecx, dword [esp + 0x2c]
jmp 0x8980a6
mov eax, ebp
and eax, edi
cmp eax, 0xffffffff
jne 0x898060
test bl, bl
je 0x898060
inc esi
xor bl, bl
cmp esi, dword [esp + 0x10]
jae 0x89806a
jmp 0x898063
mov byte [ecx], dl
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
test bl, bl
jne 0x898037
cmp esi, dword [esp + 0x10]
jae 0x8981d7
test edi, edi
jg 0x8980c2
jl 0x8980be
test ebp, ebp
jae 0x8980c2
mov bh, 0x7f
jmp 0x8980c4
xor bh, bh
mov ebp, dword [esp + 0x10]
mov byte [esp + 0x44], bh
lea edi, [ebp - 1]
cmp esi, edi
jae 0x898108
mov bl, bh
or bl, 0x80
sub edi, esi
mov byte [esp + 0x14], bl
mov esi, dword [esp + 0x14]
cmp ecx, dword [esp + 0x28]
jb 0x8980f8
push esi
lea ecx, [esp + 0x24]
call fcn.0040c4b4
mov ecx, dword [esp + 0x2c]
jmp 0x898103
mov byte [ecx], bl
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
sub edi, 1
jne 0x8980e2
cmp ecx, dword [esp + 0x28]
jb 0x898120
push dword [esp + 0x44]
lea ecx, [esp + 0x24]
call fcn.0040c4b4
jmp 0x8981db
mov byte [ecx], bh
inc dword [esp + 0x2c]
jmp 0x8981db
mov ebx, dword [esp + 0x18]
xor edi, edi
mov esi, dword [esp + 0x1c]
mov dl, bl
inc edi
shrd ebx, esi, 7
and dl, 0x7f
shr esi, 7
mov eax, ebx
or eax, esi
mov byte [esp + 0x44], dl
jne 0x898150
cmp edi, ebp
jae 0x898157
or dl, 0x80
mov byte [esp + 0x44], dl
cmp ecx, dword [esp + 0x28]
jb 0x898170
push dword [esp + 0x44]
lea ecx, [esp + 0x24]
call fcn.0040c4b4
mov ecx, dword [esp + 0x2c]
jmp 0x89817b
mov byte [ecx], dl
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
mov eax, ebx
or eax, esi
jne 0x898135
cmp edi, ebp
jae 0x8981db
lea esi, [ebp - 1]
cmp edi, esi
jae 0x8981bb
sub esi, edi
nop
cmp ecx, dword [esp + 0x28]
jb 0x8981aa
push 0x80
lea ecx, [esp + 0x24]
call fcn.0040c4b4
mov ecx, dword [esp + 0x2c]
jmp 0x8981b6
mov byte [ecx], 0x80
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
sub esi, 1
jne 0x898190
cmp ecx, dword [esp + 0x28]
jb 0x8981ce
push 0
lea ecx, [esp + 0x24]
call fcn.0040c4b4
jmp 0x8981db
mov byte [ecx], 0
inc dword [esp + 0x2c]
jmp 0x8981db
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x20]
cmp ebp, dword [eax + 0x2c]
setne bl
call fcn.00413223
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x30
ret 8
push 1
push str.sleb128_and_uleb128_expressions_must_be_absolute
call fcn.0040284c
int3