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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x148
push esi
push edi
mov edi, ecx
mov dword [esp + 0x4c], edi
mov eax, dword [edi + 0xf0]
cmp eax, 0xed8
jge 0x451c3f
inc eax
mov dword [edi + 0xf0], eax
cmp eax, 1
je 0x40dbf1
cmp byte [edi + 0x100], 0
mov byte [edi + 0x14c], 0
jne 0x40d9d5
lea esp, [esp]
cmp byte [edi + 0x14c], 0
jne 0x40d9d5
cmp byte [0x4d1361], 0
jne 0x451c7d
cmp byte [0x4d18e8], 0
jne 0x451c8f
mov eax, dword [0x4d2520]
inc eax
cmp dword [edi + 0xfc], 0
mov dword [0x4d2520], eax
jne 0x40db11
cmp byte [edi + 0x101], 0
jne 0x40db11
test eax, 0x7ff
je 0x40db11
call dword [0x49c58c]
test eax, eax
jne 0x40db11
cmp byte [0x4d1362], 1
je 0x452cb4
cmp dword [edi + 0xfc], 1
je 0x452ccc
cmp dword [0x4d259c], 0
jne 0x451d01
cmp byte [0x4d1367], 1
je 0x451db5
cmp dword [edi + 0x438], 0
je 0x40d8b4
cmp byte [0x4d251c], 0
jne 0x40d8b4
mov esi, dword [edi + 0x430]
lea eax, [edi + 0x430]
mov byte [0x4d251c], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], eax
lea ebx, [ebx]
test esi, esi
jne 0x40d9fc
mov edi, dword [esp + 0xc]
lea esp, [esp]
mov eax, dword [edi]
mov ecx, eax
mov dword [esp + 0xc], eax
test ecx, ecx
jne 0x40da45
mov edi, dword [esp + 0x4c]
mov byte [0x4d251c], cl
cmp dword [esp + 0x1c], ecx
jg 0x40d9c8
cmp dword [0x4d18dc], 0
jne 0x40da6d
cmp dword [edi + 0x18c], 0
jne 0x451ffa
cmp byte [0x4d1a30], 0
jne 0x4525ee
mov eax, dword [edi + 0xfc]
cmp eax, 7
je 0x4526e4
cmp eax, 2
je 0x40dbaf
cmp eax, 8
je 0x452b74
cmp eax, 9
je 0x452b74
cmp eax, 3
je 0x40dbaf
cmp eax, 4
je 0x40dbaf
cmp eax, 5
je 0x40dbaf
cmp eax, 6
je 0x40dbaf
mov esi, dword [ebp + 8]
mov dword [edi + 0xf8], esi
lea eax, [esi + 1]
mov dword [ebp + 8], eax
cmp esi, dword [0x4d23a0]
jg 0x452a22
test esi, esi
jle 0x452a22
shl esi, 4
add esi, dword [0x4d23dc]
je 0x452a22
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
movsx eax, word [eax + 8]
test eax, eax
jne 0x40da5b
lea eax, [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.0040dd50
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x40dae8
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], edx
cmp ecx, 5
jge 0x40dc79
mov dword [esp + 0x3c], 1
mov dword [esp + 0x30], 0
cmp byte [edi + 0x100], 0
je 0x40d7b0
mov eax, dword [edi + 0xf0]
mov byte [edi + 0x14c], 0
cmp eax, 1
je 0x40dc04
dec eax
mov dword [edi + 0xf0], eax
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi]
cmp byte [eax + 0x11], 0
jne 0x40da3d
mov edi, dword [eax + 0x14]
call dword [0x49c7c8]
mov ecx, eax
xor edx, edx
sub eax, edi
cmp edi, 0x7fffffff
ja 0x451dc9
cmp ecx, 0x7fffffff
ja 0x40da28
cdq
mov edi, dword [esi]
test edx, edx
jl 0x40da3d
jg 0x451dda
cmp eax, dword [edi + 0x18]
jae 0x451dda
mov esi, dword [esi + 4]
jmp 0x40d880
mov ecx, dword [eax]
cmp byte [ecx + 0x11], 0
jne 0x451e15
mov ecx, dword [eax + 4]
mov eax, ecx
jmp 0x40d894
cmp eax, 0x33
jne 0x40da7f
push esi
mov ecx, edi
call fcn.0040dfd0
jmp 0x40d997
cmp byte [0x4d18bc], 0
je 0x40d8c1
jmp 0x451e26
dec eax
cmp eax, 0x7e
ja case.0x40da90.2
movzx eax, byte [eax + 0x40dca0]
jmp dword [eax*4 + 0x40dc8c]
lea eax, [esp + 0x30]
mov ecx, edi
push eax
lea eax, [esp + 0x1c]
push eax
push esi
push 0
call fcn.00411310
test eax, eax
js 0x40d997
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0x7f
je 0x40d997
jmp 0x4528e7
lea eax, [esp + 0x63]
mov ecx, edi
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x20]
push eax
push esi
push 0
call fcn.0040bf40
jmp 0x40daab
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x452986
push 0x10
push esi
call fcn.0041fdcd
add esp, 8
mov dword [esp + 0x38], 0
jmp 0x40d9a3
push 1
push 0
push 0
push 0
lea eax, [esp + 0xd8]
mov byte [edi + 0x101], 0
push eax
call dword [0x49c588]
test eax, eax
je 0x40d815
jmp 0x40db40
cmp dword [esp + 0xcc], 0x12
je 0x451ceb
mov ecx, dword [0x4d18d8]
cmp ecx, 0xffffffff
jne 0x451ca1
lea eax, [esp + 0xc8]
mov ecx, 0x4d18b0
push eax
call fcn.0041edf6
test eax, eax
jne 0x40db8f
lea eax, [esp + 0xc8]
push eax
call dword [0x49c754]
lea eax, [esp + 0xc8]
push eax
call dword [0x49c74c]
push 1
push 0
push 0
push 0
lea eax, [esp + 0xd8]
push eax
call dword [0x49c588]
test eax, eax
je 0x40d815
jmp 0x40db40
push 0xa
call dword [0x49c17c]
cmp dword [edi + 0x2e0], 0
je 0x40dbdd
mov ecx, dword [edi + 0x2e8]
call fcn.0041e551
test edx, edx
jl 0x40dbdd
jg 0x40dc56
cmp eax, dword [edi + 0x2e0]
jae 0x40dc56
mov eax, dword [edi + 0xfc]
cmp eax, 3
jl 0x40d9c8
jmp 0x452a3e
mov esi, dword [edi + 0x124]
test esi, esi
je 0x40d795
jmp 0x451c5a
mov ecx, edi
call fcn.004018e2
cmp byte [edi + 0x100], 1
je 0x40d9f2
mov ecx, edi
call fcn.0041e499
push 0
call dword [0x49c5f4]
push dword [0x4d138c]
call dword [0x49c648]
mov esi, dword [0x49c6f0]
lea eax, [esp + 0x134]
push 0
push 0
push 0
push eax
call esi
test eax, eax
jle 0x40d9f2
jmp 0x452ceb
cmp dword [edi + 0xfc], 2
jne 0x452a31
mov byte [edi + 0x14c], 1
mov dword [edi + 0xfc], 0
jmp 0x40d9c8
add ecx, 0xfffffffb
cmp ecx, 0xa
ja case.0x40dc85.6
jmp dword [ecx*4 + 0x40dd20]
inc ebp
add byte [eax + 0x18], bh
inc ebp
add byte [eax - 0x3bffbae8], bl
sbb byte [ebp], al
les ebx, [eax]
inc ebp
add byte [esi - 0x78ffbae8], ch
sbb dword [ebp], eax
rcl edx, cl
inc eax
add bl, dl
rol byte [eax], cl
pop ebp
sbb dword [ebp], eax
rcl edx, cl
inc eax
add byte [ebx + 0x19], dh
rol byte [eax], cl
rcl edx, cl
inc eax
add byte [ebp + 0x19], bl
inc ebp
add bl, dl
rol byte [eax], cl
jae 0x451c60
inc ebp
add byte [edx - 0x53ffbae7], bl
sbb dword [ebp], eax
salc
sbb dword [ebp], eax
salc
sbb dword [ebp], eax
rcr dword [ecx], 0x45
add byte [edx - 1], ch
sbb dword [ebp], eax
push 0xffffffffffffffff
push 0x50b875fb
sti
jne 0x451c1b
push eax
mov byte [0x6a4d1360], 0
push 0x4a
sbb edi, ecx
push 0x6f
call 0x8b594d37
ror dword [ebx + 0x236ff], cl
jmp 0xfc03e31e
popfd
invalid
push esi
sbb eax, 0x7660e9c0
add al, 0xe9
jp 0x451cfb
sti
inc dword [eax - 0x7cb241]
add eax, 0xa584950f
mov ebx, 0x3be9e857
inc ebp
loopne 0x451ce6
setne byte [ebp - 0x1617a845]
cmp eax, dword [ebp - 0x20]
cmp dword [ebp - 0x41], eax
dec ebp
shr al, 1
jns 0x451c36
inc ebp
mov edi, 0x79e8d04d
or byte [edi], 0x84
xchg ebx, eax
mov ebx, 0x36e9e857
add edi, 2
ror byte [0x4d1914], 0x7d
xor esi, dword [eax]
call dword [0xfbb1c664]
dec dword [ebx + 0x74e87587]
and eax, 0xd18488b
add cl, ch
push ds
lea edx, [esp - 0x7d861738]
push edx
push ecx
add byte [eax], 0
je 0xe89cd84d
jmp 0x30c9ff5
add byte [eax], al
add byte [eax*8 + 0x24748b49], dl
sbb al, 0x59
dec ecx
mov esi, dword [esp + 0x1c]
pop ecx
xchg byte [ebx + edi*2 - 0x4416168c], al
mov edi, 0xd805c7fb
sbb byte [ebp], cl
add eax, 0x4d18d8
add byte [edx], ch
push 0
push 0xbfbb72a9
sti
mov byte [edi + 0x8788366], 1
mov dword [edi + 0x79e8d04d], 0xfffba7b9
test byte [ebx + eax*4], dl
mov dword [edx], 0x4d25a0a1
add byte [edx + 8], ch
push eax
mov ecx, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0x14], ecx
call fcn.0041fdeb
dec dword [0x4d259c]
dec dword [ebp - 0x5fca76bb]
and eax, 0xdef7004d
sbb esi, esi
and dword [0x4d25a4], esi
xor esi, esi
mov ecx, dword [edi + 0xfc83be8]
or eax, 0x8b20e900
xchg edi, eax
lea eax, [ebp - 0x60]
push eax
mov edi, dword [esp + 0xc]
mov eax, dword [edx + esi*4]
mov eax, dword [edi + 0x474e875]
cmp dword [eax], edi
je 0x451d76
inc esi
cmp esi, ecx
jb 0x451d64
mov edi, dword [esp + 0x4c]
cmp esi, ecx
je 0x45d2795a
lock xchg dword [ebp - 0x74af5fbb], ecx
iretd
call 0xff5a8e5
mov edi, 0xc10c0a40
jge 0x451e0a
invalid
call 0xba3a48
push eax
call 0x48d01e90
or byte [ecx + 0x13], ah
dec ebp
push 0
jne 0x45d27967
push 0xa
jmp 0x448b2cc7
call 0x541e31e
lea ecx, [esi]
push 0
push 1
mov byte [ecx + 0x10], 1
add esi, eax
inc ecx
adc byte [ecx], al
sar dword [ebp + 0x49], 0x8d
dec esp
and al, 0x54
inc eax
push eax
call 0xba3a48
jne 0x451e28
mov eax, dword [esi]
mov byte [eax + 0x10], 0
jmp 0xe848da5b
add byte [ecx + 0x4d18b0], bh
call fcn.004979c9
mov esi, eax
mov dword [esp + 0x1c], esi
dec dword [ebp - 0x768ddbbc]
or ecx, dword [ecx - 0x17473885]
cmp dword [eax - 0x7ffb9b41], eax
cmpsb byte [esi], byte es:[edi]
sti
mov eax, dword [edi + eax*8 + 0xcb88300]
add esi, eax
xchg dword [esp + eax - 0x80], esp
cmpsb byte [esi], byte es:[edi]
sti
push dword [edi + 0x4c8b1b90]
and al, 0x14
add esi, dword [edi + eax*8 + 0x44]
and al, 0x68
add byte [eax], cl
call 0x2489e7ba
push esp
cmp byte [esi], bh
mov dword [esp + eax*2 + 0x24], eax
sbb byte [esp + eax*2 + 0x24], al
pop eax
inc esp
inc esp
and al, 0x5c
inc esp
inc esp
and al, 0x60
call fcn.00473138
dec dword [edi + 0xf007501]
call 0xfb467048
call dword [ebx + 0x52]
je 0x452091
adc al, 3
and bh, al
inc esp
and al, 0x28
adc byte [ebx + 0x3689ec45], cl
call 0xff600fe
mov edi, 0xffde0476
cld
movsd dword es:[edi], dword [esi]
push esp
je 0x4520ad
adc byte [esi + 8], dh
mov ecx, edi
call 0x541e31e
invalid
cld
add al, 0x8d
ror byte [ecx - 0x74e3dbac], 1
dec edx
adc byte [ecx - 0x18], dl
sub eax, 0x89fffb07
invalid
cmp dword [edx + 0x14], 0xffffff89
inc esp
inc esp
and al, 0x18
jle 0xf4595db
retf
sbb byte [ebx - 0x30f], cl
test ah, dl
add bh, byte [ebx + 0x2d]
inc ebp
add byte [ebx + 0xdc08504], cl
add byte [edi], cl
test dh, bl
mov dword [0xd3b8fffb], eax
mov dword [0xbf80fffb], eax
cmp eax, 0xfba68004
mov eax, dword [eax - 0x4600044e]
nop
adc eax, 0x4de8c664
cwde
xor dword [ebp + 0x2d], esi
lea eax, [ebp - 0x337bf00a]
mov dl, 0xe8
cmp dword [ebp + 0x7e], eax
or byte [edx + 0x46a840f], al
call 0x8c36b69
or byte [edi], 0x84
push 4
mov dword [ecx], eax
lea ecx, [esi + 4]
sub al, 0xb
jne fcn.0041e31e
mov dword [esp + 0x40], eax
je 0x45266c
sbb al, 0x59
xchg ebx, eax
add bh, bh
add eax, 0xb4ff068b
and al, 7
mov dword [ebp - 0x38], 0x85c8d068
add al, 0x8d
test byte [esp + edi*4], ah
or al, ch
ja 0x45262b
test byte [eax], dh
les ecx, [eax + eax - 0x73]
add byte [eax], cl
call 0x30c9ede8
enter 0xffffffffffffe8d0, 0x79
mov ecx, 0xe8fffba7
push ebx
jbe 0x4526e7
add byte [edx], ch
inc dword [esp + 0x77e808bc]
sti
jmp dword [ecx - 0xb2dc7c]
cld
cdq
sbb edi, ebx
sti
invalid
inc esp
and al, 0x40
add byte [eax], cl
call 0x7c2d78e2
cmove edx, dword [eax - 2]
invalid
clc
retf 0x351
sti
cmp byte [esp + 0x13], 0
imul esp, dword [ebx + eax], 0x448d2deb
and al, 0x1c
invalid
jmp 0x10ad9ec9
invalid
inc ebp
in al, dx
mov dword [esi], esi
call 0x8553fe32
leave
je 0x77442e35
add al, 0xff
invalid
add al, 0xff
jbe 0x4529bf
or al, 0xe8
xor edx, esp
sar bl, 0xff
lea eax, [ebp - 0x17]
push edi
mov cl, 0xaf
call 0xfc05fdeb
dec dword [ebp - 0x4ea816bb]
scasd eax, dword es:[edi]
sti
inc eax
call fcn.004037d5
push cs
push cs
sti
inc dword [ebx - 0x18282]
push cs
push cs
sti
inc dword [ebx - 0x18282]
sti
inc eax
call 0x74f52ae2
or dword [ebp - 0x2f17f7b6], ecx
dec edx
or al, ch
shr byte [esi - 1], 1
mov ecx, edi
call 0xc14478cd
lea ecx, [edx + 8]
call 0x8c4498ad
iretd
dec edx
or al, ch
shr byte [esi - 1], 1
mov ecx, edi
call 0xc14478cd
call 0xaf516f6
call 0x4641ca70
cld
inc ebp
cld
inc ebp
movsb byte es:[edi], byte [esi]
jmp [edx + 8]
jae 0x4529d5
cmpsb byte [esi], byte es:[edi]
add cl, ch
int 0xaf
scasd eax, dword es:[edi]
sti
inc eax
call 0xaf4ef1e
call 0xcad02c98
xor eax, eax
sti
dec dword [ebx - 0x4505048]
inc eax
call 0xaf4da33
call 0x8141caad
outsb dx, byte [esi]
dec dword [ebx + 0x748914cf]
mov al, 0xaf
or ch, al
and dword [eax - 0x917f04], 0xffffff8b
iretd
and al, 0x20
push esi
mov bl, 0xd3
sar bl, 0xff
lea eax, [ebp - 0x17]
xchg esi, eax
jne 0x452a40
add dword [edi], ecx
jg 0xe91577cc
pop dword [edi + 0x79e8d04d]
mov ecx, 0x84fffba7
xchg edi, eax
scasd eax, dword es:[edi]
sti
inc edi
jns case.0x40dc85.13
cmpsd dword [esi], dword es:[edi]
sti
inc dword [edi + edx*4 - 0x38000451]
inc esp
and al, 0x40
add byte [eax], cl
call 0x15213d1
add byte [eax + edx*2], dl
call 0xe01dab65
invalid
add ecx, eax
jmp 0x8391b341
add eax, dword [eax]
jmp 0x452cb0
std
mov bh, 0
add ecx, eax
jmp 0x8391b480
shr ecx, 0xc6
xchg dword [ebx + eax*4 + 0x78], ecx
or byte [ecx], al
mov dword [edi + 0x79e8d04d], 0x79797979
call dword [0x49c17c]
jmp 0x5af14e6
add cl, ch
adc al, 0xe8
imul eax, dword [0x136705c6], 0xc6006a4d
add eax, 0x6a4d1362
add byte [edi - 0x172fb279], cl
jns 0x452ca0
cmpsd dword [esi], dword es:[edi]
sti
call dword [ecx - 0x18]
jnp 0x452cfd
call 0xc7893c6b
inc esp
and al, 1
add dword [ecx], eax
add dword [ecx], eax
inc esp
mov dword [esp + 1], 0x1010101
push eax
inc dh
jg 0x452ce5
add al, 3
iretd
add ecx, edi
call fcn.00401a23
jmp 0x74b8d9f3