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

Disassembly:
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x18], esi
jne 0x40779a
cmp dword [ebp + 0x10], 0
jne 0x482507
mov ebx, dword [ebp + 0x38]
mov eax, ebx
neg eax
sbb eax, eax
lea ecx, [esp + 0xc]
and eax, ecx
push eax
push edi
push dword [ebp + 0x1c]
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x58]
push eax
push dword [ebp + 0xc]
lea eax, [esp + 0x44]
push eax
lea edx, [esp + 0x40]
inc eax
lea ecx, [esp + 0x68]
call fcn.004077b0
add esp, 0x28
test eax, eax
je 0x48258a
mov eax, dword [esp + 0x34]
cmp dword [edi + 0x40], eax
ja 0x4076ba
mov esi, dword [esp + 0x18]
test ebx, ebx
jne 0x4075b9
mov eax, dword [esp + 0x14]
push 0x77
pop ecx
cmp word [eax], cx
je 0x4076f1
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ecx
cmp dword [ebp + 0x10], 0
jne 0x482529
mov ebx, dword [esp + 0x20]
push 0x7c
pop edx
cmp word [ebx], dx
je 0x4076c6
cmp dword [ebp + 0x38], 0
jne 0x4075f1
mov edi, dword [esp + 0x14]
mov edx, esi
sub edx, edi
sar edx, 1
movzx ecx, word [edi + 2]
mov eax, ecx
neg eax
mov word [edi + 2], dx
mov edx, ecx
lea edi, [edi + eax*2]
test ecx, ecx
jg 0x4075d9
mov edi, dword [ebp + 0x34]
mov ecx, dword [esp + 0x4c]
push 0x78
pop eax
mov word [esi], ax
mov eax, esi
sub eax, ecx
sar eax, 1
mov word [esi + 2], ax
add esi, 4
cmp dword [esp + 0x48], 0
jg 0x40769a
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x50]
mov dword [eax], esi
mov eax, dword [ebp + 8]
mov dword [eax], ebx
mov eax, dword [ebp + 0x20]
mov ebx, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
mov edx, dword [esp + 0x30]
mov dword [eax], edx
mov eax, dword [ebp + 0x28]
mov edx, dword [esp + 0x1c]
mov dword [eax], edx
mov eax, dword [ebp + 0x2c]
mov dword [eax], ebx
mov ebx, dword [ebp + 0x38]
test ebx, ebx
je 0x407669
mov edx, dword [ebx]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x4825e3
add ecx, edx
mov dword [ebx], ecx
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x24]
xor edx, edx
cmp word [eax + 6], dx
jne 0x48259a
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov dword [edi + 0x24], eax
jmp 0x407617
mov eax, dword [edi + 0x40]
mov dword [esp + 0x34], eax
jmp 0x407577
cmp dword [ebp + 0x38], 0
mov ecx, dword [esp + 0xc]
je 0x407734
mov eax, dword [esp + 0x50]
mov esi, dword [eax]
add esi, dword [esp + 0x54]
add ecx, 2
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x58]
add ebx, 2
mov dword [esp + 0x20], ebx
jmp 0x407505
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
test ecx, ecx
jns 0x407753
test eax, eax
js 0x407761
mov ecx, dword [esp + 0x24]
test ecx, ecx
jns 0x407765
mov ecx, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov ebx, dword [esp + 0x10]
mov eax, ecx
xor eax, ebx
test eax, 0xfffffffd
je 0x407788
or dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 0x14]
jmp 0x4075af
push 0x77
pop eax
mov word [esi], ax
mov eax, esi
sub eax, dword [esp + 0x14]
mov dword [esp + 0x14], esi
sar eax, 1
mov word [esi + 2], ax
mov dword [esp + 0x6c], esi
add esi, 4
jmp 0x4076e1
cmp dword [esp + 0x2c], edx
jne 0x40776b
cmp ecx, eax
jne 0x40776b
test ecx, ecx
js 0x407701
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
jmp 0x407717
mov ebx, dword [esp + 0x10]
test ebx, ebx
jns 0x40777f
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ecx
or ecx, 0xffffffff
mov dword [esp + 0x30], ecx
jmp 0x40775d
cmp dword [esp + 0x1c], edx
jne 0x407726
or ebx, ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ebx
jmp 0x40772b
mov dword [edi + 0x40], eax
jmp 0x407513
cmp edi, 0x7d
je 0x4825ee
cmp edi, 0x75
je 0x482606
mov eax, 0x92
cmp di, ax
je 0x4827f2
inc eax
cmp di, ax
je 0x4827f2
mov eax, 0xa1
cmp di, ax
cmp edi, eax
je 0x4827f2
add eax, 0xfffffff3
cmp di, ax
je 0x4827f2
lea eax, [ecx + 0x78]
cmp di, ax
je 0x4827e1
inc eax
cmp di, ax
je 0x4827e1
lea eax, [ecx + 0x7a]
cmp di, ax
je 0x4827e1
inc eax
cmp di, ax
je 0x4827e1
lea eax, [ecx + 0x73]
cmp di, ax
je 0x482784
inc eax
cmp di, ax
je 0x482784
lea eax, [ecx + 0x75]
cmp di, ax
je 0x482784
inc eax
cmp di, ax
je 0x482784
lea eax, [ecx + 0x71]
cmp di, ax
je 0x482784
inc eax
cmp di, ax
je 0x482784
lea eax, [ecx + 0x77]
cmp di, ax
je 0x482784
lea eax, [edi - 6]
cmp eax, 0x95
ja case.0x408a2d.23
movzx eax, byte [eax + 0x408a7e]
jmp dword [eax*4 + 0x408a56]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
lea ecx, [esi + 0x22]
movzx eax, word [ecx]
add eax, 0xffffff9e
cmp eax, 0xb
ja case.0x408a2d.6
jmp 0x4826da
xor eax, eax
inc eax
jmp 0x408a36
inc eax
add ah, cl
dec eax
add byte [esi - 0x76], cl
inc eax
add byte [eax + 0x27], bh
dec eax
add byte [eax], dl
sub byte [eax], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], cl
or dword [ecx], ecx
or dword [ecx], ecx
or dword [eax], eax
add byte [eax], al
add byte [ecx], al
add dword [eax], eax
add byte [ecx], al
add dword [edx], eax
add al, byte [eax]
add dword [eax], eax
add dword [edx], eax
add dword [ecx], eax
add byte [eax], al
add dword [ecx], eax
add al, byte [edx]
add byte [ecx], al
add byte [ecx], al
add al, byte [ecx]
add dword [eax], eax
add byte [ecx], al
add dword [edx], eax
add al, byte [eax]
add dword [eax], eax
add dword [edx], eax
add dword [ecx], eax
add byte [eax], al
add dword [ecx], eax
add al, byte [edx]
add byte [ecx], al
add byte [ecx], al
add al, byte [ebx]
add eax, dword [eax]
add byte [ebx], al
add eax, dword [esp + eax]
add byte [ebx], al
add byte [ebx], al
add al, 9
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [151586309], eax
or dword [ecx], ecx
or dword [ecx], ecx
pop es
pop es
pop es
pop es
pop es
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [eax], ecx
or dword [eax], ecx
or dword [eax], ecx
or dword [eax], ecx
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add dword [edi], eax
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add al, byte [edi]
pop es
add eax, dword [edi]
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add al, 7
pop es
pop es
pop es
pop es
add eax, 0x7070707
push es
mov word [esi], dx
add esi, 2
xor eax, eax
mov dword [esp + 0x44], esi
mov word [esi], ax
add esi, 2
add ecx, 2
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], ecx
jmp 0x407555
clc
inc dword [ebp + 0x3b1478c9]
dec edi
dec eax
jle 0x482598
mov dword [edi + 0x48], ecx
mov eax, dword [esp + 0x44]
and al, 0x44
mov word [eax], cx
jmp 0x4075f1
dec dword [ebx - 0x47a7dbb4]
or esp, 0x89660000
add dword [ebp - 0x3ed4fbba], ecx
mov dword [ecx], eax
lea eax, [esi + 4]
sub eax, ecx
mov ecx, dword [esp + 0x68]
add esp, 0xc
sar eax, 1
mov word [ecx], ax
push 0x78
pop ecx
mov word [esi + 4], cx
mov ecx, dword [esp + 0xc]
dec esi
add al, 0x8b
dec esp
and al, 0xc
mov word [esi + 6], ax
add esi, 8
add ecx, 4
jmp 0x4076e5
movzx edi, word [esi]
jmp 0x1142848
mov dword [ebp - 8], ebx
lea eax, [ebp - 0xc]
push eax
push edx
push dword [ebp + 8]
mov edx, dword [ebp - 4]
mov ecx, ebx
call fcn.0040895a
add esp, 0xc
push 0x77
test eax, eax
jne 0x482847
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
pop eax
cmp word [ebx], ax
cmp dword [ebx], eax
cmp dword [ebx], eax
jne 0x408a6c
mov edx, dword [ebp + 0xc]
jmp 0x4826cf
sub byte ss:[eax - 0x34], cl
cmp word [ecx + 2], dx
ja 0x408a6c
jmp 0x482848
mov ax, word [esi + 2]
mov edx, 0x24fc00
and ax, dx
mov edx, 0x24d800
cmp ax, dx
jmp 0x482796
inc esi
add al, 0xb9
add ah, bh
and al, 0
and ax, cx
mov ecx, 0x24d800
cmp ax, cx
jne 0xbc4c48
add esi, 2
jmp 0xcc489c48
test edi, edi
jne 0x482800
push edx
push dword [ebp + 0xc]
mov edx, dword [ebp - 4]
push dword [ebp + 8]
mov ecx, esi
call fcn.0040895a
add esp, 0xc
test eax, eax
popal
clc
inc dword [ebx - 0x3f7af33c]
je 0x4827fe
inc edi
xor edx, edx
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
je 0x4827e1
test edi, edi
je 0x408a6c
pop eax
invalid
clc
invalid
pop eax
invalid
jmp 0x482636
pop ebx
movzx eax, di
xor edx, edx
movzx eax, byte [eax + 0x49e560]
inc edx
lea ecx, [esi + eax*2]
call fcn.00408b4c
mov esi, eax
cmp esi, dword [ebp - 4]
jae 0x408a86
jmp 0x40898a