Function at 0x408955
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]
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
push 0x10
xor edx, edx
pop ecx
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
dec eax
add dl, bl
push ds
dec eax
add byte [edi - 0x40ffb7e2], dh
push ds
dec eax
add bh, al
push ds
dec eax
add byte [ebx + 0x14e84822], ah
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
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 0xe940757f
call 0x406c7a1a
xor ecx, ecx
xor ebx, ebx
shr edx, 0xb
push edi
mov word [esi], cx
inc ebx
push ecx
and edx, ebx
mov ecx, eax
call fcn.00470b93
pop ecx
pop ecx
mov ecx, eax
cmp ecx, 0xfffffffd
jne 0x4825b6
mov dword [edi + 0x74], ebx
jmp 0x40761b
mov ecx, ecx
js 0x4825ce
cmp ecx, dword [edi + 0x48]
jle 0x4825c2
mov dword [edi + 0x48], ecx
mov eax, dword [esp + 0x44]
mov word [eax], cx
jmp 0x40761b
cmp ecx, 0xfffffffe
jne 0x4825d8
push 0x24
pop eax
jmp 0x4825e7
xor eax, eax
cmp ecx, 0xfffffffc
setne al
dec eax
and eax, 0x2d
add eax, 0x19
sub eax, 0x8b19c083
dec ebp
or al, 0x89
add dword [ebx + 0x448b084d], ecx
and al, 0x20
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x20]
or byte [ebx - 0x76dfdbbc], cl
add dword [ebx], esi
shr cl, 0xd2
push eax
clc
dec dword [ebx - 0x7c3ed43a]
mov dword [ecx], eax
xor eax, eax
jmp 0x4076ce
loopne 0x482601
push eax
push ecx
lea eax, [ecx + 4]
push eax
inc ecx
add al, 0x50
call 0xe9425fe2
mov ebx, dword [ecx - 0x6d]
pop eax
mov eax, 0x4539d781
mov word [ecx], ax
lea eax, [esi + 4]
sub eax, ecx
mov ebx, dword [ecx - 0x6d]
push 0xd10c6a5b
clc
mov word [ecx], ax
push 0x78
pop ecx
mov word [esi + 4], cx
mov ebx, dword [ecx - 0x6d]
or al, 0x66
mov dword [esi + 6], eax
add esi, 8
add ecx, 4
jmp 0x40770f
invalid