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

Disassembly:
and al, 0x70
mov eax, dword [esp + 0x74]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
call fcn.00405cf2
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xe
add al, 0xeb
js 0x405c80
in al, dx
enter 0, 0
mov edi, dword [ebp + 0x24]
mov esi, dword [ebp + 0x28]
mov edx, dword [ebp + 8]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], edi
mov ebx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0x30], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov eax, dword [ebp + 0x20]
mov ecx, 6
test eax, eax
js 0x405d44
mov ecx, eax
mov dword [esi], ecx
add al, 0xeb
js 0x405d53
invalid
add byte [eax], al
jmp 0x405d81
adc byte [ebp + 8], dh
mov dword [esp + 0x1c], ecx
mov cx, 8
test eax, 0x10000
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], esi
jne 0x405da4
movzx ecx, cx
or ecx, 0x800
and eax, 0
loopne 0x405df7
mov bh, 0x89
inc esp
and al, 0x10
sete ah
cmp dword [esp + 0x1c], 0
setne al
mov esi, dword [edx + 0x48]
test esi, esi
add al, ah
dec esi
mov bh, 0x84
mov dword [eax], 0x7a830000
adc al, 2
jne 0x405e8e
mov dword [esp + 4], esi
mov ebx, dword [ebp + 0xc]
cmp dword [ebp + 0x14], 0
je 0x405df9
test ebx, ebx
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 4]
add al, ah
dec esi
mov bh, 0x84
mov al, byte [0x83000000]
jge 0x405e04
add byte [ebp + 0x15], dh
jmp 0x405e91
add byte [eax], al
add byte [ebp + 0x24748bdb], al
sbb al, 0x8b
pop esp
and al, 4
add al, ah
dec esi
mov bh, 0x84
test dword [eax], eax
add byte [eax], al
cmp word [ebp + 0x1c], 0
mov dword [esp + 0x94], ecx
add al, ah
dec esi
mov bh, 0x95
rol dword [ebx + 0xf00187d], 0x94
ret 0xca84
stc
or ecx, dword [esp + 0x28]
and al, 0x28
mov esi, dword [esp + 0x1c]
je 0x405eae
test esi, esi
jne 0x405eae
mov dword [edx + 0x1c], 0x18
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0x2f
jne 0x405ebf
mov dword [edx + 0x1c], 0x19
jmp 0x405ea4
test esi, esi
je 0x405ed1
mov ebx, dword [ebp + 0x2c]
mov byte [esp + 0x24], 1
and al, 0x24
add dword [ebx - 0x14d7db8c], ecx
inc edi
sub al, 0xc6
inc esp
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00409213
add esp, 4
cmp eax, 0x10000
jb 0x405f3a
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], 0x19
mov edx, eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x9c], ebx
add al, ah
dec esi
mov bh, 0xb7
inc ebp
sbb al, 0x89
test byte [eax], ah
add byte [eax], al
add bh, al
inc esp
and al, 0x14
add byte [eax], al
add byte [eax], al
add dword [ecx - 0x121c6], 0xffffffff
dec dword [ebx + 0x438b085d]
and byte [ebx - 0x3ef6dbb5], cl
mov ecx, 0
mov dword [esp + 0x2c], edx
je 0x405f97
mov ecx, eax
or ecx, esi
mov edx, eax
and edx, 0xfffffffe
add ecx, edx
inc ecx
and ecx, dword [ebx]
lea edx, [esi + eax]
inc edx
sub eax, ecx
and eax, edx
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
xor eax, eax
add edx, dword [esp + 0xa0]
setb al
mov ebx, edx
mov dword [esp + 0x90], ecx
add ebx, ecx
mov ecx, eax
adc ecx, 0
mov dword [esp + 0x44], ebx
add ebx, 0x4a
adc ecx, 0
cmp esi, ebx
sbb dword [esp + 0x14], ecx
jae 0x405fdf
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], 0xf
jmp 0x405ead
mov ebx, dword [esp + 8]
test ebx, ebx
jne 0x40604e
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 4]
mov ebx, dword [ecx]
add ebx, dword [esp + 0x54]
adc esi, 0
add ebx, 0x1e
adc esi, 0
mov dword [esp + 8], esi
mov esi, ebx
and esi, dword [esp + 0x2c]
mov ecx, esi
shr ecx, 0x1f
add esi, esi
xor ebx, dword [esp + 0x2c]
add edx, dword [ebp + 0x38]
adc eax, 0
add edx, dword [ebp + 0x40]
adc eax, 0
add edx, dword [esp + 0x90]
adc eax, 0
add edx, ebx
adc eax, dword [esp + 8]
add edx, esi
adc eax, ecx
add edx, 0x54
adc eax, 0xffffffff
xor ebx, ebx
cmp eax, 0xffffffff
je 0x40604e
mov eax, dword [esp + 4]
mov dword [eax + 0x34], 1
add byte [eax], al
add byte [ebx + 1], bh
add byte [eax], al
xor edx, edx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x40607e
mov eax, dword [ebp + 0xc]
cmp byte [ecx + eax - 1], 0x2f
mov eax, dword [ebp + 8]
jne 0x40607e
cmp dword [ebp + 0x14], 0
jne 0x40626e
mov edx, 0x10
or edi, dword [esp + 0x28]
jne 0x40626e
mov dword [esp + 0x28], edx
test ebx, ebx
je 0x40608b
mov ebx, 0x1c
mov eax, dword [esp + 0x44]
add eax, ebx
add eax, 0x2e
mov ebx, dword [esp + 4]
mov edx, dword [ebx + 8]
cmp edx, eax
mov ecx, dword [ebp + 0x14]
jae 0x4060db
mov ecx, 1
test edx, edx
je 0x4060ad
mov ecx, edx
mov esi, ecx
add ecx, ecx
cmp esi, eax
jb 0x4060c3
add al, 0xeb
js 0x40610f
mov ebx, dword [esp + 8]
push dword [ebx + 0xc]
push dword [ebx]
mov edi, dword [ebp + 8]
jge 0x4060cd
push dword [edi + 0x34]
call dword [edi + 0x30]
add esp, 0x10
test eax, eax
add al, ah
dec esi
adc byte [ebp + 0x4ee000c0], al
mov bh, 0x84
jge 0x4060d8
add byte [eax], al
mov dword [ebx], eax
add byte [ecx + 0x8738903], cl
mov dword [ebx + 8], esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
inc eax
cmp edx, eax
jae 0x406127
mov ecx, 1
add byte [eax], al
test edx, edx
je 0x4060f7
mov ecx, edx
mov esi, ecx
add ecx, ecx
cmp esi, eax
jb 0x4060f7
push esi
mov ebx, dword [esp + 8]
push dword [ebx + 0x1c]
push dword [ebx + 0x10]
mov edi, dword [ebp + 8]
push dword [edi + 0x34]
call dword [edi + 0x30]
add esp, 0x10
test eax, eax
xor al, 0xff
push edi
xor byte [ebx - 0x3f7aef3c], al
add al, ah
dec esi
mov bh, 0x84
cmp byte [ecx], al
add byte [eax], al
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x18], esi
mov ecx, dword [ebp + 0x14]
test ecx, ecx
sete al
xor ebx, ebx
or al, byte [esp + 0x24]
jne 0x406154
push 0x4df40
push 1
mov eax, dword [ebp + 8]
push dword [eax + 0x34]
call dword [eax + 0x28]
add esp, 0xc
mov ebx, eax
test eax, eax
add al, ah
dec esi
mov bh, 0x84
das
add al, byte [eax]
add byte [ebx + 0x7c8b084d], cl
and al, 0x18
mov dword [esi], ecx
add al, 0xeb
jp 0x4060ef
je 0x40618a
push esp
push esi
push dword [esp + 0x10]
call 0x406958
add esp, 8
test eax, eax
je 0x40626b
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x1c], 0
setne dl
mov ecx, dword [esp + 0x34]
and al, 0x34
mov eax, dword [esp + 0x30]
add eax, esi
adc ecx, 0
mov dword [esp + 8], eax
mov dword [esp + 0x30], eax
add edi, esi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0xc]
adc edi, 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov word [esp + 0x8c], 0
add al, ah
dec esi
mov bh, 0xb6
pop esp
and al, 0x24
xor bl, 1
or bl, dl
movzx edx, bl
shl edx, 3
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 4]
cmp dword [eax + 0x34], 0
je 0x40628c
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], 0
mov edx, 0xf0fffffe
loopne 0x406283
mov bh, 0x89
je 0x40625d
inc esp
cmp edx, esi
mov edx, 0
sbb edx, eax
mov edi, dword [esp + 8]
add al, ah
dec esi
mov bh, 0x82
push ecx
add dword [eax], eax
add byte [ecx], dh
sar byte [esi - 2], cl
cmp esi, edi
sbb edx, ecx
jb 0x4063a1
inc eax
add dword [eax], eax
add byte [ecx], dh
shr cl, 0x98
add dword [eax], eax
add bh, al
inc edi
sbb al, 0x10
add byte [eax], al
xor eax, eax
jmp 0x406400
adc byte [eax], al
add byte [eax], al
jmp 0x405ec5
add cl, ch
push ecx
cld
invalid
cld
invalid
add cl, ch
xor edi, esp
invalid
add cl, ch
and al, 0xfb
push eax
loopne 0x4063f7
mov bh, 0x89
ret 0xc3b8
add byte [eax], al
mov dword [esp + 4], ecx
push eax
push esi
call fcn.00406a20
sbb al, 6
add byte [eax], al
add esp, 8
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [ebp + 0x38]
mov dword [esp + 8], eax
add edx, eax
mov dword [esp + 0x70], 0x4034b50
test bl, bl
je 0x406426
mov bl, 0x14
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], 0
movzx ebx, word [esp + 0x94]
mov byte [esp + 0x76], bl
mov byte [esp + 0x77], bh
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x78], bl
mov dword [esp + 0x79], 0
mov dword [esp + 0x7d], 0
mov dword [esp + 0x81], 0
mov dword [esp + 0x85], 0
mov byte [esp + 0x89], 0
mov ebx, dword [esp + 0x2c]
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bh
mov byte [esp + 0x8c], dl
mov byte [esp + 0x8d], dh
lea edx, [esp + 0x70]
push 0x1e
push edx
push ecx
push edi
mov esi, dword [ebp + 8]
push dword [esi + 0x44]
call dword [esi + 0x3c]
add esp, 0x14
cmp eax, 0x1e
jne 0x406597
mov edi, dword [esp + 0x18]
add edi, 0x1e
mov eax, esi
mov esi, dword [esp + 0xc]
adc esi, 0
push ebx
push dword [ebp + 0xc]
push esi
push edi
push dword [eax + 0x44]
call dword [eax + 0x3c]
add esp, 0x14
cmp eax, ebx
jne 0x406587
add eax, edx
loopne 0x40652c
mov bh, 0x83
salc
add byte [ebx + 0x4247c], al
mov ebx, edi
je 0x406515
lea eax, [esp + 0xa8]
mov edi, dword [esp + 8]
push edi
push eax
push esi
push ebx
mov eax, dword [ebp + 8]
push dword [eax + 0x44]
call dword [eax + 0x3c]
add esp, 0x14
cmp dword [esi], ecx
add al, 0xeb
js 0x40650c
loopne 0x40655c
mov bh, 0x85
cwde
add byte [eax], al
add byte [ecx], al
sti
adc esi, 0
jmp 0x406523
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x406549
push eax
push dword [ebp + 0x34]
jne 0x406562
push esi
push ebx
mov eax, dword [ebp + 8]
push dword [eax + 0x44]
call dword [eax + 0x3c]
add esp, 0x14
cmp eax, dword [ebp + 0x38]
mov eax, dword [ebp + 0x38]
jne 0x4065ac
add ebx, eax
adc esi, 0
mov edi, dword [ebp + 0x14]
movzx eax, byte [esp + 0x24]
test al, al
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], esi
je 0x4065bb
pop esi
push edi
push dword [ebp + 0x10]
push esi
push ebx
mov eax, dword [ebp + 8]
push dword [eax + 0x44]
call dword [eax + 0x3c]
add esp, 0x14
cmp dword [esi], ecx
add al, 0xeb
js 0x4065ea
sbb eax, 0x114458b
inc esp
and al, 0x18
adc dword [esp + 0xc], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0
inc esp
and al, 0x4c
add byte [eax], al
add byte [eax], al
jmp 0x406681
mov esi, dword [ebp + 8]
push dword [esi + 0x34]
call dword [esi + 0x2c]
add esp, 8
mov dword [esi + 0x1c], 0x13
jmp 0xeb4473e0
push cs
add al, 0xeb
jns 0x4065b0
invalid
dec dword [ebx + 0x40c70845]
sbb al, 0x13
add byte [eax], al
add cl, ch
and cl, byte [esi]
add al, 0xeb
jns 0x4065c2
invalid
inc dword [ebp - 0x447bf001]
add byte [eax], al
add byte [ebx + 0x44890845], cl
and al, 0x58
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
add bh, al
inc esp
and al, 0x68
add byte [eax], al
add byte [eax], al
mov eax, dword [esp + 0x10]
mov ecx, eax
or dword [esi], 4
jmp 0x406676
and al, 0x6c
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
inc esp
and al, 0x60
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
push dword [esp + 0x14]
mov eax, dword [ebp + 8]
push dword [eax + 0x34]
call dword [eax + 0x2c]
add esp, 8
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov esi, ecx
mov dword [esp + 0x10], eax
or ecx, eax
je 0x40689f
mov dword [esp + 0x58], 0x8074b50
mov edx, dword [esp + 0x9c]
mov byte [esp + 0x5c], dl
mov byte [esp + 0x5d], dh
mov ecx, edx
shr ecx, 0x10
mov byte [esp + 0x5e], cl
mov ecx, edx
shr ecx, 0x18
mov byte [esp + 0x5f], cl
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
cmp dword [esp + 4], 0
je 0x4067a8
mov byte [esp + 0x60], cl
mov byte [esp + 0x61], ch
mov ebx, ecx
shr ebx, 0x10
mov byte [esp + 0x62], bl
mov ebx, edx
shr ebx, 0x10
shr ecx, 0x18
mov byte [esp + 0x63], cl
mov ecx, edx
shr ecx, 0x18
mov byte [esp + 0x64], dl
mov byte [esp + 0x65], dh
mov byte [esp + 0x66], bl
mov byte [esp + 0x67], cl
mov edx, esi
mov byte [esp + 0x68], dl
mov byte [esp + 0x69], dh
mov ecx, esi
shr ecx, 0x10
mov byte [esp + 0x6a], cl
mov ecx, esi
shr ecx, 0x18
mov byte [esp + 0x6b], cl
mov dword [esp + 0x44], 0x38
mov dword [esp + 0x90], 0x30
mov ecx, 0x28
mov dword [esp + 0x24], 0x18
mov dword [esp + 0x14], 0x17
mov eax, dword [esp + 0x10]
mov edx, eax
mov byte [esp + 0x23], al
mov dword [esp + 0x54], 0x16
mov dword [esp + 0x98], 0x15
mov edi, 0x14
jmp 0x406805
test edx, edx
je 0x4067ac
loopne 0x4067fc
mov bh, 0x8b
inc ebp
or bh, al
inc eax
sbb al, 0x1d
add byte [eax], al
add cl, ch
xor al, 0xf7
push eax
loopne 0x40680e
mov bh, 0x89
dec esp
and al, 0x60
mov dword [esp + 0x44], 0x18
mov dword [esp + 0x90], 0x10
mov ecx, 8
mov dword [esp + 0x14], 0xf
mov dword [esp + 0x54], 0xe
mov edx, esi
mov byte [esp + 0x23], dl
mov dword [esp + 0x98], 0xd
add byte [eax], al
mov edi, 0xc
mov dword [esp + 0x24], 0x10
and al, 0x24
adc byte [eax], al
add byte [eax], al
mov edx, esi
mov ebx, dword [esp + 0x10]
pop esp
and al, 0x10
add al, ah
dec esi
mov bh, 0xad
fcmovbe st(0), st(3)
jmp 0x406829
mov edx, esi
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x10]
shrd edx, eax, cl
mov edi, dword [esp + 0x98]
mov byte [esp + edi + 0x58], bl
mov ebx, eax
sar byte [eax], 1
adc ebp, dword [ebp + 0x20c1f6eb]
jne 0x406852
mov ebx, edx
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
shrd esi, eax, cl
mov edx, esi
mov esi, dword [esp + 0x54]
mov byte [esp + esi + 0x58], bl
sar byte [eax], 1
adc ebp, dword [ebp + 0x20c1f6e8]
jne 0x406873
mov eax, edx
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x58], al
lea eax, [esp + 0x58]
mov esi, dword [esp + 0x24]
push esi
push eax
push dword [esp + 0x14]
push dword [esp + 0x24]
mov eax, dword [ebp + 8]
push dword [eax + 0x44]
call dword [eax + 0x3c]
add esp, 0x14
cmp eax, esi
add al, ah
dec esi
mov bh, 0x85
pop ebp
idiv bh
dec dword [ebx + 0x1242444]
inc esp
and al, 0x18
adc dword [esp + 0xc], 0
cmp dword [esp + 4], 0
je 0x406910
test dword [ebp - 0xa], ebx
invalid
xor edx, edx
mov eax, 0xfffffffe
cmp eax, dword [esp + 0x30]
mov eax, 0
sbb eax, dword [esp + 0x34]
jb 0x4068d2
xor eax, eax
jmp 0x4068d6
lea eax, [esp + 0x30]
mov ecx, 0xfffffffe
cmp ecx, dword [esp + 0x38]
mov ecx, 0
sbb ecx, dword [esp + 0x3c]
jb 0x4068f1
mov edi, 0
jmp 0x4068f5
lea edi, [esp + 0x48]
jae 0x4068fb
lea edx, [esp + 0x38]
lea ecx, [esp + 0xa8]
push eax
push esp
cmp byte [ebx], dl
lodsd eax, dword [esi]
call fcn.00406a50
add esp, 8
mov dword [esp + 8], eax
inc esp
and al, 8
add al, ah
dec esi
mov bh, 0xb7
pushfd
and al, 0x94
add byte [eax], al
add byte [edi], cl
mov bh, 0x74
and al, 0x1c
movzx eax, word [esp + 8]
add al, ah
dec esi
mov bh, 0xb7
jl 0x406953
sub al, 0x8b
dec ebp
or byte [ebx + 0x75ff0c55], cl
inc eax
push dword [ebp + 0x3c]
push dword [esp + 0x30]
push dword [esp + 0x40]
push dword [esp + 0x40]
push 0
push 0
push ebx
push esi
push dword [esp + 0xc0]
add byte [eax], al
push dword [esp + 0x74]
push dword [esp + 0x74]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0xd8]
push dword [ebp + 0x18]
push eax
push dword [esp + 0x48]
push edi
call 0x406b36
add esp, 0x4c
test eax, eax
add al, ah
dec esi
mov bh, 0x84
test ebp, esi
invalid