Function at 0x408952
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]
inc esp
and al, 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]
dec esp
and al, 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
movzx edi, word [esi]
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
sahf
pop es
invalid
mov eax, 0xa1
cmp di, ax
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
or dword [ecx], ecx
add byte [eax], al
add byte [eax], al
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 [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 eax, dword [ebx]
add byte [eax], al
add eax, dword [ebx]
add al, 4
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
push ds
dec eax
add byte [edi - 0x40ffb7e2], dh
push ds
dec eax
add bh, al
push ds
dec eax
add byte [ebx + 0x6794822], 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 [edx + 1], ebp
sbb byte [ecx - 0x16f3dbb4], cl
hlt
and al, 0x40
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.00470b90
pop ecx
pop ecx
mov ecx, eax
cmp ecx, 0xfffffffd
jne 0x4825b3
ror dword [ebx - 0x1a111738], cl
invalid
mov dword [edi + 0x74], ebx
jmp 0x407618
push esi
leave
js 0x4825cb
cmp ecx, dword [edi + 0x48]
jle 0x4825bf
mov dword [edi + 0x48], ecx
mov eax, dword [esp + 0x44]
mov word [eax], cx
jmp 0x407618
cmp ecx, 0xfffffffe
jne 0x4825d5
push 0x24
pop eax
jmp 0x4825e4
xor eax, eax
cmp ecx, 0xfffffffc
setne al
dec eax
and eax, 0x2d
add eax, 0x19
sbb dword [ebx + 0x1890c4d], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x20]
and al, 0x20
mov dword [ecx], eax
xor eax, eax
jmp 0x4076cb
call 0x36425fdf
mov ecx, dword [ebx - 0x7e47a731]
test eax, eax
jne 0x48267b
mov dword [ecx], eax
lea eax, [esi + 4]
sub eax, ecx
mov ecx, dword [ebx + 0x88b68cf]
or al, 0xd1
clc
mov word [ecx], ax
push 0x78
pop ecx
mov word [esi + 4], cx
mov ecx, dword [ebx - 0x7699f331]
inc esi
push es
add esi, 8
add ecx, 4
jmp 0x8c40770c
mov eax, dword [ebp + 0xc]
mov dword [eax], 0xaf000014
jmp 0x4825f2
mov esi, eax
movzx edi, word [esi]
jmp 0xf48286f
and byte [ebx + 0x25], dh
mov eax, dword [ebp + 0xc]
inc ebp
salc
sub edx, dword [eax + 0x14]
add edx, 2
sar edx, 1
movzx eax, word [ecx]
cmp eax, edx
je 0x8c408aad
clc
mov ecx, dword [ebx - 0x3e7cf3bb]
add bh, byte [ebx]
dec eax
and byte [edx - 0x16], dh
mov eax, dword [ebp + 0xc]
add ecx, 2
cmp ecx, dword [eax + 0x20]
jb 0x48268b
dec ebp
sal byte [ebx], 1
shl byte [esi + 0x39], 0x43
add cl, byte [edi]
test dh, bh
arpl ax, di
call dword [ecx + 0x4d]
adc bl, ch
cmp al, 0x6a
ja 0x482642
retf
cmp esi, ecx
jbe 0xfb48286c
mov ecx, dword [ebp + 0x10]
mov eax, ecx
test dword [edx - 1], ebp
push 0xffffffffffffffff
adc edi, dword [ecx]
pop eax
add al, 0x74
push es
mov ebp, dword [edi - 0xa8a95aa]
test eax, eax
jne 0x4c6c286c
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ebx
lea eax, [ebp - 0xc]
inc ebp
hlt
push eax
push edx
test dword [ebp + 8], esi
mov edx, dword [ebp - 4]
mov ecx, ebx
call fcn.00408981
mov ecx, dword [eax]
or al, 0x6a
ja 0x482693
inc ebp
hlt
ror byte [edi], 0x85
pop ecx
mov eax, dword [esp + 0xf]
mov bh, 0x43
add cl, byte [ebp + 0x6658431c]
pop eax
cmp word [ebx], ax
pop eax
cmp word [ebx], ax
jne 0x408a93
push ecx
push ebp
or al, 0xeb
retf
push 0xf
pop edx
cmp ax, dx
ret 0x850f
cld
push es
fadd qword [eax]
ret 0x850f
add esi, 4
jmp 0xcc276f
invalid
invalid
invalid
inc dword [ebx + 0x46b70f00]
add al, 0x6a
adc byte [edx + 0x66], bl
cmp eax, edx
je 0x482773
ret 0xec74
jmp 0x482767
inc esp
and al, 0xf
mov bh, 0x46
add ah, byte [esi - 0x77]
jle 0x4827fa
test byte [ebp - 0x4600079e], bh
xchg dword [ebp + 0x3b6675c0], eax
stc
test eax, eax
jne 0x48285c
cmp edi, ecx
jne 0x482806
lea eax, [esi + eax*2]
cmp word [eax], bx
jne 0x48265b
or dl, bh
test edi, edi
jne 0x482827
push edx
test dword [ebp + 0xc], esi
mov edx, dword [ebp - 4]
test dword [ebp + 8], esi
mov ecx, esi
call fcn.00408981
mov ecx, dword [eax]
or al, 0x85
sal byte [ecx + eax + 0x47], 0x33
ror byte [edi], cl
mov bh, 0x46
add cl, byte [ebp + 0x39664634]
push ds
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
je 0x482808
push esi
dec dword [edi]
test byte [eax + 0x62], bl
clc
invalid
movzx eax, word [esi + 2]
lea esi, [esi + eax*2]
cmp word [esi], bx
mov bh, 0x46
add cl, byte [ebp + 0x39664634]
push ds
je 0x48285b
jmp 0x48265d