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

Disassembly:
add esp, 4
pop esi
push eax
and eax, 0x19d7
pop eax
cmp dword [ebp - 0x1528], 0
jne 0x406b19
mov dword [ebp - 0x71c], 0
jmp 0x406dc0
mov eax, dword [ebp - 0x1528]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xc3c], edx
push edx
push ebx
add esp, 4
and edx, 0x124fc
add edx, 0x5b59
sub edx, 0x11ad7
pop edx
push eax
push ecx
add esp, 4
sub eax, 0x13f72
pop eax
push edx
add edx, 0xfff5
add edx, 0x7a87
pop edx
cmp dword [ebp - 0xc3c], 0
jne 0x406b75
mov dword [ebp - 0x71c], 0
jmp 0x406dc0
mov eax, dword [ebp - 0xc3c]
mov dword [ebp - 0x4c4], eax
push edi
push edx
add esp, 4
sub edi, 0xd6e6
call 0x406b99
add byte [ecx], bh
cmp dword [edi], edi
inc esp
cmp al, 0x36
dec eax
add esp, 4
call 0x406ba9
add byte [ebx + 0x4c], al
dec esi
dec eax
xor al, byte ds:[ebx - 0x387efb3c]
shr dword [ecx + eax], 0
pop edi
lea ecx, [ebp - 0x1654]
mov dword [ebp - 0xc38], ecx
mov edx, dword [ebp - 0x4c4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xc34], eax
xor ecx, ecx
mov word [ebp - 0x1b0], cx
xor edx, edx
mov word [ebp - 0x24], dx
push esi
jmp 0x406be7
jmp 0x406bf0
jmp 0x406bf6
add esi, 0x13728
pop esi
push edx
push ecx
add esp, 4
and edx, 0x686e
add edx, 0xb077
pop edx
mov eax, dword [ebp - 0xc34]
mov cx, word [eax]
mov word [ebp - 0xfd2], cx
mov edx, dword [ebp - 0xc34]
add edx, 2
mov dword [ebp - 0xc34], edx
mov ax, word [ebp - 0xfd2]
mov word [ebp - 0x1b0], ax
mov ecx, dword [ebp - 0xc38]
mov dx, word [ecx]
mov word [ebp - 0xfd4], dx
mov eax, dword [ebp - 0xc38]
add eax, 2
mov dword [ebp - 0xc38], eax
mov cx, word [ebp - 0xfd4]
mov word [ebp - 0x24], cx
push ebx
push ebx
add esp, 4
or ebx, 0x7cd4
or ebx, 0x14849
pop ebx
push ecx
and ecx, 0xb78d
pop ecx
push ebx
call 0x406c8f
add byte [ebx + 0x3e], al
aas
cmp al, 0x47
xor edi, dword [eax]
add esp, 4
jmp 0x406c97
pop ebx
movzx edx, word [ebp - 0x24]
test edx, edx
jne 0x406cb5
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x1530], eax
jmp 0x406d0f
movzx edx, word [ebp - 0x1b0]
movzx eax, word [ebp - 0x24]
cmp edx, eax
je 0x406bdd
movzx ecx, word [ebp - 0x1b0]
xor ecx, 0x20
movzx edx, word [ebp - 0x24]
cmp ecx, edx
je 0x406bdd
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x24]
cmp eax, ecx
jge 0x406cf9
mov dword [ebp - 0x152c], 0xffffffff
jmp 0x406d03
mov dword [ebp - 0x152c], 1
mov edx, dword [ebp - 0x152c]
mov dword [ebp - 0x1530], edx
cmp dword [ebp - 0x1530], 0
jne 0x406d58
push eax
xor eax, 0x18413
call 0x406d2d
add byte [edi], dh
inc esi
dec ecx
dec ebx
cmp byte ds:[ecx], bh
inc ecx
add esp, 4
pop eax
push eax
and eax, 0x766f
pop eax
push ebx
jmp 0x406d43
xor ebx, 0xd9ac
pop ebx
mov eax, dword [ebp - 0x4c4]
mov dword [ebp - 0x71c], eax
jmp 0x406dc0
push ebx
push ebx
add esp, 4
sub ebx, 0xa203
or ebx, 0xa543
jmp 0x406d71
xor ebx, 0x3ae1
pop ebx
push ebx
push edi
add esp, 4
or ebx, 0xe84d
and ebx, 0xc1a9
pop ebx
mov ecx, dword [ebp - 0x4c4]
mov edx, dword [ecx]
mov dword [ebp - 0x4c4], edx
mov eax, dword [ebp - 0x4c4]
cmp eax, dword [ebp - 0xc3c]
je 0x406db6
mov ecx, dword [ebp - 0x4c4]
cmp dword [ecx + 0x30], 0
jne 0x406b81
mov dword [ebp - 0x71c], 0
push edx
push esi
add esp, 4
add edx, 0x12d9a
xor edx, 0x634e
add edx, 0x2d8b
pop edx
push edx
jmp 0x406dde
pop edx
push eax
push esi
add esp, 4
sub eax, 0x1618f
jmp 0x406df1
pop eax
cmp dword [ebp - 0x71c], 0
jne 0x406e3c
push eax
push eax
add esp, 4
call 0x406e0f
add byte [ebx], bh
dec ebp
xor edi, dword [ecx]
dec esi
xor al, byte [ebx + 0x49]
inc edi
add esp, 4
jmp 0x406e18
pop eax
push edx
push ecx
add esp, 4
add edx, 0x424
jmp 0x406e2c
pop edx
mov dword [ebp - 0x768], 0
jmp 0x407964
push ebx
push ebx
add esp, 4
add ebx, 0x4589
sub ebx, 0x1a68
add ebx, 0xe8da
sub ebx, 0x15b2b
pop ebx
push eax
xor eax, 0x11774
jmp 0x406e67
and eax, 0x14ae2
pop eax
mov edx, dword [ebp - 0x71c]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x72c], 0
mov ecx, dword [ebp - 0x330]
mov dword [ebp - 0x1534], ecx
cmp dword [ebp - 0x1534], 0
jne 0x406ead
mov edx, dword [ebp - 0x72c]
mov dword [ebp - 0x3a0], edx
jmp 0x40719e
mov eax, dword [ebp - 0x1534]
mov ecx, dword [ebp - 0x330]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x1538], ecx
jne 0x406ed5
mov edx, dword [ebp - 0x72c]
mov dword [ebp - 0x3a0], edx
jmp 0x40719e
mov eax, 8
imul ecx, eax, 0
mov edx, dword [ebp - 0x1538]
mov eax, dword [edx + ecx + 0x78]
mov dword [ebp - 0x153c], eax
cmp dword [ebp - 0x153c], 0
jne 0x406f07
mov ecx, dword [ebp - 0x72c]
mov dword [ebp - 0x3a0], ecx
jmp 0x40719e
mov edx, dword [ebp - 0x330]
add edx, dword [ebp - 0x153c]
mov dword [ebp - 0x720], edx
jne 0x406f2c
mov eax, dword [ebp - 0x72c]
mov dword [ebp - 0x3a0], eax
jmp 0x40719e
mov ecx, dword [ebp - 0x720]
mov edx, dword [ebp - 0x330]
add edx, dword [ecx + 0x20]
mov dword [ebp - 0x1bf8], edx
mov eax, dword [ebp - 0x720]
mov ecx, dword [ebp - 0x330]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x1bfc], ecx
mov edx, dword [ebp - 0x720]
mov eax, dword [ebp - 0x330]
add eax, dword [edx + 0x1c]
mov dword [ebp - 0x1c00], eax
mov dword [ebp - 0x724], 0
jmp 0x406f86
mov ecx, dword [ebp - 0x724]
add ecx, 1
mov dword [ebp - 0x724], ecx
mov edx, dword [ebp - 0x720]
mov eax, dword [ebp - 0x724]
cmp eax, dword [edx + 0x18]
jae 0x407192
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x1bf8]
mov eax, dword [ebp - 0x330]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x728], eax
mov ecx, dword [ebp - 0x724]
mov edx, dword [ebp - 0x1bfc]
movzx eax, word [edx + ecx*2]
mov ecx, dword [ebp - 0x1c00]
mov edx, dword [ebp - 0x330]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x1c04], edx
mov dword [ebp - 0x150], 0
jmp 0x406ff6
mov eax, dword [ebp - 0x150]
add eax, 1
mov dword [ebp - 0x150], eax
mov ecx, dword [ebp - 0x728]
add ecx, dword [ebp - 0x150]
movsx edx, byte [ecx]
test edx, edx
je 0x4070a8
mov eax, dword [ebp - 0x150]
movsx ecx, byte [ebp + eax - 0x840]
test ecx, ecx
je 0x4070a8
push edi
push edi
add esp, 4
or edi, 0xe8ed
call 0x40703b
add byte [ebp + 0x3f], cl
inc ebp
inc ebp
dec ebp
xor al, byte [eax - 0x7d]
les eax, [ebx + ebp*8]
add eax, 0x4d493f45
dec eax
pop edi
push eax
push ecx
add esp, 4
jmp 0x407054
pop eax
mov edx, dword [ebp - 0x728]
add edx, dword [ebp - 0x150]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x150]
movsx edx, byte [ebp + ecx - 0x840]
cmp eax, edx
je 0x40709a
mov eax, dword [ebp - 0x728]
add eax, dword [ebp - 0x150]
movsx ecx, byte [eax]
xor ecx, 0x20
mov edx, dword [ebp - 0x150]
movsx eax, byte [ebp + edx - 0x840]
cmp ecx, eax
jne 0x4070a1
jmp 0x406fe7
jmp 0x4070a8
push eax
push ecx
add esp, 4
jmp 0x4070b3
sub eax, 0xaaeb
xor eax, 0xa526
pop eax
push eax
or eax, 0x3ba3
xor eax, 0x1072e
and eax, 0x9f39
sub eax, 0xbe9e
pop eax
mov ecx, dword [ebp - 0x728]
add ecx, dword [ebp - 0x150]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x150]
movsx ecx, byte [ebp + eax - 0x840]
cmp edx, ecx
jne 0x407107
mov dword [ebp - 0xc40], 0
jmp 0x407176
push ecx
add ecx, 0x28c3
and ecx, 0x12b21
pop ecx
push edx
push edi
add esp, 4
and edx, 0x5bf6
add edx, 0x6d73
pop edx
push eax
push esi
add esp, 4
or eax, 0x565e
or eax, 0x208b
pop eax
mov edx, dword [ebp - 0x728]
add edx, dword [ebp - 0x150]
movsx eax, byte [edx]
or eax, 0x20
mov ecx, dword [ebp - 0x150]
movsx edx, byte [ebp + ecx - 0x840]
or edx, 0x20
cmp eax, edx
jge 0x40716c
mov dword [ebp - 0xc40], 0xffffffff
jmp 0x407176
mov dword [ebp - 0xc40], 1
cmp dword [ebp - 0xc40], 0
jne 0x40718d
mov eax, dword [ebp - 0x1c04]
mov dword [ebp - 0x3a0], eax
jmp 0x40719e
jmp 0x406f77
mov ecx, dword [ebp - 0x72c]
mov dword [ebp - 0x3a0], ecx
cmp dword [ebp - 0x3a0], 0
je 0x407279
push esi
sub esi, 0xff52
pop esi
push eax
jmp 0x4071b9
pop eax
push esi
push ebx
add esp, 4
and esi, 0x178fd
add esi, 0xb93a
call 0x4071d9
add byte [edx + 0x3b], cl
dec edx
inc esp
inc edi
xor edi, dword [esi]
dec eax
add esp, 4
pop esi
mov edx, dword [ebp - 0x3a0]
mov dword [ebp - 0x1c08], edx
push edi
or edi, 0x547a
add edi, 0x1008e
or edi, 0xa9cc
sub edi, 0x7b08
pop edi
push esi
push edx
add esp, 4
sub esi, 0x6a1
xor esi, 0xc866
add esi, 0x12a8f
pop esi
mov eax, dword [ebp - 0x1c08]
mov dword [ebp - 0x1c0c], eax
lea ecx, [ebp - 0x15e8]
push ecx
call dword [ebp - 0x1c0c]
test eax, eax
jne 0x407279
push edi
call 0x407248
add byte [edi + 0x38], al
xor bh, byte [ebx]
xor eax, 0x3a3a3c47
add esp, 4
sub edi, 0x1861e
and edi, 0x1629a
pop edi
push edi
push esi
add esp, 4
add edi, 0xe61
or edi, 0x339a
pop edi
mov dword [ebp - 0x768], 0
jmp 0x407964