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

Disassembly:
add eax, dword [ebp - 0x198]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x198]
movsx eax, byte [ebp + edx - 0x894]
or eax, 0x20
cmp ecx, eax
jge 0x40660d
mov dword [ebp - 0xca8], 0xffffffff
jmp 0x406617
mov dword [ebp - 0xca8], 1
cmp dword [ebp - 0xca8], 0
jne 0x40662e
mov ecx, dword [ebp - 0x1970]
mov dword [ebp - 0x3f4], ecx
jmp 0x40663f
jmp 0x406418
cmp dword [ebp - 0x3f4], 0
je 0x40671a
push eax
push edx
add esp, 4
and eax, 0x4844
or eax, 0xec6
xor eax, 0xb91f
mov ecx, 0x51580000
xor ecx, 0x16a57
xor ecx, 0x85d2
xor ecx, 0x53df
and ecx, 0x118d6
pop ecx
mov eax, dword [ebp - 0x3f4]
mov dword [ebp - 0x1974], eax
push edi
push eax
add esp, 4
xor edi, 0x1822
xor edi, 0x11d5e
xor edi, 0x14037
pop edi
push ebx
call 0x4066b2
add byte [esp + edi + 0x36], cl
cmp eax, 0x4a443847
dec edi
add esp, 4
and ebx, 0xf77b
pop ebx
mov ecx, dword [ebp - 0x1974]
mov dword [ebp - 0x1978], ecx
lea edx, [ebp - 0x1738]
push edx
call dword [ebp - 0x1978]
test eax, eax
jne 0x40671a
push eax
jmp 0x4066e0
sub eax, 0x1cc4
and eax, 0x138a6
pop eax
push edx
push edx
add esp, 4
or edx, 0x5b8f
sub edx, 0x90d
add edx, 0x101dc
and edx, 0x6141
pop edx
mov dword [ebp - 0x79c], 0
jmp 0x406e04
push edx
jmp 0x406724
jmp 0x406729
and edx, 0x942d
pop edx
push ebx
push ecx
add esp, 4
xor ebx, 0x33c4
pop ebx
push esi
and esi, 0x1736c
pop esi
push edi
xor edi, 0x46ac
pop edi
mov eax, dword fs:[0x18]
mov dword [ebp - 0x197c], eax
mov ecx, dword [ebp - 0x197c]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x1980], edx
mov eax, dword [ebp - 0x1980]
mov dword [ebp - 0x15fc], eax
push eax
push eax
add esp, 4
call 0x406788
add byte [esi], bh
xor al, byte [eax + 0x3a]
inc edi
cmp cl, byte [eax + 0x45]
dec eax
inc ebp
cmp dword [edi], edi
add esp, 4
add al, 0x81
rol byte [edx + 0x5800017e], 0x52
add byte [eax + 0x52], bl
push edx
add esp, 4
add al, 0xeb
invalid
sub edx, 0xb2d4
pop edx
cmp dword [ebp - 0x15fc], 0
jne 0x4067bd
mov dword [ebp - 0x31c], 0
mov ecx, dword [ebp - 0x15fc]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcb4], eax
push edi
add edi, 0x9a54
and edi, 0x11250
xor edi, 0x15ff4
pop edi
push edi
push edi
add esp, 4
add al, 0x81
test dword [esi], 0x81000126
not ebp
add al, byte [eax]
add byte [eax], al
xor edi, 0x1bce
or edi, 0x98ff
pop edi
cmp dword [ebp - 0xcb4], 0
jne 0x406819
mov dword [ebp - 0x31c], 0
jmp 0x406a64
mov ecx, dword [ebp - 0xcb4]
mov dword [ebp - 0x50c], ecx
push edx
push edx
add esp, 4
and edx, 0xf42
pop edx
push esi
and esi, 0x124bf
or esi, 0xe24e
and esi, 0x156e
and esi, 0x1244c
pop esi
push edi
push eax
add esp, 4
and edi, 0x2434
pop edi
lea edx, [ebp - 0x1738]
mov dword [ebp - 0xcb0], edx
mov eax, dword [ebp - 0x50c]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcac], ecx
xor edx, edx
mov word [ebp - 0x218], dx
xor eax, eax
mov word [ebp - 0x34], ax
push ecx
add ecx, 0xa42b
jmp 0x406890
pop ecx
push ebx
xor ebx, 0x7ff8
jmp 0x40689e
jmp 0x4068a3
jmp 0x4068aa
pop ebx
push ebx
sub ebx, 0x13d47
pop ebx
mov ecx, dword [ebp - 0xcac]
mov dx, word [ecx]
mov word [ebp - 0x103a], dx
mov eax, dword [ebp - 0xcac]
add eax, 2
mov dword [ebp - 0xcac], eax
mov cx, word [ebp - 0x103a]
mov word [ebp - 0x218], cx
mov edx, dword [ebp - 0xcb0]
mov ax, word [edx]
mov word [ebp - 0x103c], ax
mov ecx, dword [ebp - 0xcb0]
add ecx, 2
mov dword [ebp - 0xcb0], ecx
mov dx, word [ebp - 0x103c]
mov word [ebp - 0x34], dx
push edi
push esi
add esp, 4
xor edi, 0xe4b8
and edi, 0x1f10
call 0x40692a
add byte [ecx + 0x37], cl
cmp al, 0x38
cmp byte [edx + ecx*2], dh
inc ebp
xor eax, dword [ebx - 0x387efb3c]
cmp dword [ebp], edi
add byte [edi + 0x51], bl
sub ecx, 0x9f0f
pop ecx
movzx eax, word [ebp - 0x34]
test eax, eax
jne 0x406959
movzx ecx, word [ebp - 0x218]
movzx edx, word [ebp - 0x34]
sub ecx, edx
mov dword [ebp - 0x1604], ecx
jmp 0x4069b3
movzx eax, word [ebp - 0x218]
movzx ecx, word [ebp - 0x34]
cmp eax, ecx
je 0x406881
movzx edx, word [ebp - 0x218]
xor edx, 0x20
movzx eax, word [ebp - 0x34]
cmp edx, eax
je 0x406881
movzx ecx, word [ebp - 0x218]
movzx edx, word [ebp - 0x34]
cmp ecx, edx
jge 0x40699d
mov dword [ebp - 0x1600], 0xffffffff
jmp 0x4069a7
mov dword [ebp - 0x1600], 1
mov eax, dword [ebp - 0x1600]
mov dword [ebp - 0x1604], eax
cmp dword [ebp - 0x1604], 0
jne 0x4069fc
push ebx
push ebx
add esp, 4
sub ebx, 0x756b
jmp 0x4069cf
pop ebx
push edi
push edi
add esp, 4
xor edi, 0x11536
xor edi, 0x8e91
xor edi, 0xb586
and edi, 0xf8e9
pop edi
mov ecx, dword [ebp - 0x50c]
mov dword [ebp - 0x31c], ecx
jmp 0x406a64
push ebx
xor ebx, 0xd537
pop ebx
push eax
push eax
add esp, 4
and eax, 0xebcb
or eax, 0xc757
call 0x406a24
add byte [edx + 0x35], al
dec esi
cmp byte [edi], bh
aas
cmp ecx, dword [ecx + 0x38]
add esp, 4
or eax, 0xa83
pop eax
mov edx, dword [ebp - 0x50c]
mov eax, dword [edx]
mov dword [ebp - 0x50c], eax
mov ecx, dword [ebp - 0x50c]
cmp ecx, dword [ebp - 0xcb4]
je 0x406a5a
mov edx, dword [ebp - 0x50c]
cmp dword [edx + 0x30], 0
jne 0x406825
mov dword [ebp - 0x31c], 0
push ebx
call 0x406a74
add byte [esi], dh
xor al, 0x50
dec esi
cmp cl, byte [ebx + 0x49]
inc edx
cmp dword [ebx + 0x525b04c4], eax
pop ebx
push edx
push ecx
add esp, 4
call 0x406a8c
add byte [edx + ecx*2 + 0x47], al
inc esp
dec edx
inc edi
dec edi
dec ecx
push eax
xor edx, dword [eax + 0x32]
add esp, 4
or edx, 0x12863
pop edx
mov eax, dword [ebp - 0x31c]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x324], ecx
push ecx
or ecx, 0x1664
and ecx, 0x1865d
add ecx, 0x8327
pop ecx
push eax
push esi
add esp, 4
and eax, 0x2137
loopne 0x406af8
and dword [eax], eax
add al, ch
or al, byte [eax]
add byte [eax], al
add byte [ecx + edi + 0x4a], al
dec eax
dec esp
dec ebx
cmp byte [esi], dh
add esp, 4
pop eax
mov dword [ebp - 0x770], 0
mov edx, dword [ebp - 0x324]
mov dword [ebp - 0x1608], edx
cmp dword [ebp - 0x1608], 0
invalid
inc dword [eax]
jne 0x406b07
mov eax, dword [ebp - 0x770]
mov dword [ebp - 0x510], eax
jmp 0x406df8
mov ecx, dword [ebp - 0x1608]
mov edx, dword [ebp - 0x324]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x160c], edx
jne 0x406b2f
mov eax, dword [ebp - 0x770]
mov dword [ebp - 0x510], eax
cli
invalid
invalid
jmp 0x406df8
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x160c]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x1610], ecx
cmp dword [ebp - 0x1610], 0
jne 0x406b61
invalid
mov edx, dword [ebp - 0x770]
mov dword [ebp - 0x510], edx
jmp 0x406df8
mov eax, dword [ebp - 0x324]
add eax, dword [ebp - 0x1610]
mov dword [ebp - 0x764], eax
jne 0x406b86
mov ecx, dword [ebp - 0x770]
mov dword [ebp - 0x510], ecx
jmp 0x406df8
mov edx, dword [ebp - 0x764]
mov eax, dword [ebp - 0x324]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x1984], eax
mov ecx, dword [ebp - 0x764]
mov edx, dword [ebp - 0x324]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x1988], edx
mov eax, dword [ebp - 0x764]
mov ecx, dword [ebp - 0x324]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x1d10], ecx
mov dword [ebp - 0x768], 0
jmp 0x406be0
mov edx, dword [ebp - 0x768]
add edx, 1
mov dword [ebp - 0x768], edx
mov eax, dword [ebp - 0x764]
mov ecx, dword [ebp - 0x768]
cmp ecx, dword [eax + 0x18]
jae 0x406dec
mov edx, dword [ebp - 0x768]
mov eax, dword [ebp - 0x1984]
mov ecx, dword [ebp - 0x324]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x76c], ecx
mov edx, dword [ebp - 0x768]
mov eax, dword [ebp - 0x1988]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x1d10]
mov eax, dword [ebp - 0x324]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x198c], eax
mov dword [ebp - 0x19c], 0
jmp 0x406c50
mov ecx, dword [ebp - 0x19c]
add ecx, 1
mov dword [ebp - 0x19c], ecx
mov edx, dword [ebp - 0x76c]
add edx, dword [ebp - 0x19c]
movsx eax, byte [edx]
test eax, eax
je 0x406d02
mov ecx, dword [ebp - 0x19c]
movsx edx, byte [ebp + ecx - 0x878]
test edx, edx
je 0x406d02
push eax
sub eax, 0xbb36
and eax, 0x12abb
add eax, 0x18d0
or eax, 0xe238
pop eax
push ebx
push ecx
add esp, 4
sub ebx, 0xda7d
jmp 0x406ca8
xor ebx, 0xcefa
pop ebx
mov eax, dword [ebp - 0x76c]
add eax, dword [ebp - 0x19c]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x19c]
movsx eax, byte [ebp + edx - 0x878]
cmp ecx, eax
je 0x406cf4
mov ecx, dword [ebp - 0x76c]
add ecx, dword [ebp - 0x19c]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x19c]
movsx ecx, byte [ebp + eax - 0x878]
cmp edx, ecx
jne 0x406cfb
jmp 0x406c41
jmp 0x406d02
push eax
sub eax, 0x10c3b
call 0x406d18
add byte [ebp + 0x3a], cl
inc edx
xor eax, 0x4a383b49
dec esi
add esp, 4
call 0x406d2a
add byte [edx], dh
inc ebp
cmp al, 0x4b
cmp byte [edi + 0x3e], al
xor al, 0x3c
add esp, 4
jmp 0x406d33
pop eax
mov edx, dword [ebp - 0x76c]
add edx, dword [ebp - 0x19c]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x19c]
movsx edx, byte [ebp + ecx - 0x878]
cmp eax, edx
jne 0x406d61
mov dword [ebp - 0xcb8], 0
jmp 0x406dd0
push ebx
push esi
add esp, 4
xor ebx, 0x5cbd
pop ebx
push edi
push ecx
add esp, 4
xor edi, 0x1267d
pop edi
push ebx
push ecx
add esp, 4
and ebx, 0x29fa
pop ebx
push esi
or esi, 0x8fbc
sub esi, 0xfea3
pop esi
mov eax, dword [ebp - 0x76c]
add eax, dword [ebp - 0x19c]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x19c]
movsx eax, byte [ebp + edx - 0x878]
or eax, 0x20
cmp ecx, eax
jge 0x406dc6
mov dword [ebp - 0xcb8], 0xffffffff
jmp 0x406dd0
mov dword [ebp - 0xcb8], 1
cmp dword [ebp - 0xcb8], 0
jne 0x406de7
mov ecx, dword [ebp - 0x198c]
mov dword [ebp - 0x510], ecx
jmp 0x406df8
jmp 0x406bd1
mov edx, dword [ebp - 0x770]
mov dword [ebp - 0x510], edx
mov eax, dword [ebp - 0x510]
mov dword [ebp - 0x79c], eax
push esi
push esi
add esp, 4
xor esi, 0x9cc2
sub esi, 0xd428
pop esi
push esi
push edi
add esp, 4
add esi, 0xe4d9
sub esi, 0x106b7
or esi, 0x11b28
pop esi
push eax
xor eax, 0x102a0
pop eax
mov ecx, dword [ebp - 0x3e8]
add ecx, 0xe
mov dword [ebp - 0x19dc], ecx
push edi
sub edi, 0xae76
call 0x406e5b
add byte [edx], bh
inc ecx
xor al, 0x4f
inc edx
dec ecx
xor bh, byte [0x4c48344]
sub edi, 0x10657
pop edi
push ebx
push edx
add esp, 4
and ebx, 0xf705
add ebx, 0x15e8c
pop ebx
cmp dword [ebp - 0x3e8], 0
je 0x406e89
cmp dword [ebp - 0xab8], 0
jne 0x406ecf
push eax
push edi