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

Disassembly:
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x324], ecx
push esi
xor esi, 0xcf7a
add esi, 0x12
pop esi
push edx
push edi
add esp, 4
and edx, 0xdd3d
add edx, 0x18322
pop edx
push edx
push eax
add esp, 4
add edx, 0x12250
xor edx, 0x9da2
pop edx
mov dword [ebp - 0x774], 0
mov edx, dword [ebp - 0x324]
mov dword [ebp - 0x1610], edx
cmp dword [ebp - 0x1610], 0
jne 0x406491
mov eax, dword [ebp - 0x774]
mov dword [ebp - 0x514], eax
jmp 0x406782
mov ecx, dword [ebp - 0x1610]
mov edx, dword [ebp - 0x324]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x1614], edx
jne 0x4064b9
mov eax, dword [ebp - 0x774]
mov dword [ebp - 0x514], eax
jmp 0x406782
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x1614]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x1618], ecx
cmp dword [ebp - 0x1618], 0
jne 0x4064eb
mov edx, dword [ebp - 0x774]
mov dword [ebp - 0x514], edx
jmp 0x406782
mov eax, dword [ebp - 0x324]
add eax, dword [ebp - 0x1618]
mov dword [ebp - 0x768], eax
jne 0x406510
mov ecx, dword [ebp - 0x774]
mov dword [ebp - 0x514], ecx
jmp 0x406782
mov edx, dword [ebp - 0x768]
mov eax, dword [ebp - 0x324]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x19b8], eax
mov ecx, dword [ebp - 0x768]
mov edx, dword [ebp - 0x324]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x19bc], edx
mov eax, dword [ebp - 0x768]
mov ecx, dword [ebp - 0x324]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x19c0], ecx
mov dword [ebp - 0x76c], 0
jmp 0x40656a
mov edx, dword [ebp - 0x76c]
add edx, 1
mov dword [ebp - 0x76c], edx
mov eax, dword [ebp - 0x768]
mov ecx, dword [ebp - 0x76c]
cmp ecx, dword [eax + 0x18]
jae 0x406776
mov edx, dword [ebp - 0x76c]
mov eax, dword [ebp - 0x19b8]
mov ecx, dword [ebp - 0x324]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x770], ecx
mov edx, dword [ebp - 0x76c]
mov eax, dword [ebp - 0x19bc]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x19c0]
mov eax, dword [ebp - 0x324]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x1d48], eax
mov dword [ebp - 0x198], 0
jmp 0x4065da
mov ecx, dword [ebp - 0x198]
add ecx, 1
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x770]
add edx, dword [ebp - 0x198]
movsx eax, byte [edx]
test eax, eax
je 0x40668c
mov ecx, dword [ebp - 0x198]
movsx edx, byte [ebp + ecx - 0x87c]
test edx, edx
je 0x40668c
push ebx
or ebx, 0x11023
jmp 0x406616
and ebx, 0x10ee3
pop ebx
push ecx
sub ecx, 0x147d1
sub ecx, 0x159eb
or ecx, 0x161a6
pop ecx
push eax
and eax, 0xd689
pop eax
mov eax, dword [ebp - 0x770]
add eax, dword [ebp - 0x198]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x198]
movsx eax, byte [ebp + edx - 0x87c]
cmp ecx, eax
je 0x40667e
mov ecx, dword [ebp - 0x770]
add ecx, dword [ebp - 0x198]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x198]
movsx ecx, byte [ebp + eax - 0x87c]
cmp edx, ecx
jne 0x406685
jmp 0x4065cb
jmp 0x40668c
push esi
push eax
add esp, 4
sub esi, 0x2db8
pop esi
push esi
add esi, 0x15f35
or esi, 0xaee6
and esi, 0x16b62
xor esi, 0x7f96
pop esi
push ebx
push edx
add esp, 4
or ebx, 0x145a1
pop ebx
mov edx, dword [ebp - 0x770]
add edx, dword [ebp - 0x198]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x198]
movsx edx, byte [ebp + ecx - 0x87c]
cmp eax, edx
jne 0x4066eb
mov dword [ebp - 0xcbc], 0
jmp 0x40675a
push ecx
sub ecx, 0x14cbb
pop ecx
push edi
call 0x406701
add byte [ebx + 0x45], cl
inc ebx
xor eax, 0x834e5050
les eax, [edi + ebx*2]
push ecx
push ebx
add esp, 4
and ecx, 0xa63e
jmp 0x406717
jmp 0x40671c
pop ecx
mov eax, dword [ebp - 0x770]
add eax, dword [ebp - 0x198]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x198]
movsx eax, byte [ebp + edx - 0x87c]
or eax, 0x20
cmp ecx, eax
jge 0x406750
mov dword [ebp - 0xcbc], 0xffffffff
jmp 0x40675a
mov dword [ebp - 0xcbc], 1
cmp dword [ebp - 0xcbc], 0
jne 0x406771
mov ecx, dword [ebp - 0x1d48]
mov dword [ebp - 0x514], ecx
jmp 0x406782
jmp 0x40655b
mov edx, dword [ebp - 0x774]
mov dword [ebp - 0x514], edx
mov eax, dword [ebp - 0x514]
mov dword [ebp - 0x7a0], eax
push eax
add eax, 0x11aae
and eax, 0x52ca
add eax, 0x152a7
and eax, 0x14b1b
pop eax
push eax
push eax
add esp, 4
and eax, 0xafe
add eax, 0xc375
xor eax, 0x125b3
pop eax
mov ecx, dword [ebp - 0x3e4]
add ecx, 0xe
mov dword [ebp - 0x1a10], ecx
push edx
jmp 0x4067d9
xor edx, 0x514a
or edx, 0x53f3
call 0x4067f5
add byte [eax], bh
cmp al, 0x3e
dec ecx
push eax
push eax
dec ebp
cmp al, 0x35
inc eax
add esp, 4
pop edx
push eax
xor eax, 0xf9b0
pop eax
cmp dword [ebp - 0x3e4], 0
je 0x406813
cmp dword [ebp - 0xac4], 0
jne 0x406859
push esi
push edi
add esp, 4
jmp 0x406820
jmp 0x406825
jmp 0x40682b
sub esi, 0xe19f
pop esi
push edx
and edx, 0x6e38
xor edx, 0x8aa2
jmp 0x406844
pop edx
mov edx, dword [ebp - 0x7a0]
mov dword [ebp - 0x19c4], edx
push 0
call dword [ebp - 0x19c4]
mov dword [ebp - 0x20dc], 0xa
push ecx
xor ecx, 0x1659f
and ecx, 0x2c01
or ecx, 0x41a9
pop ecx
push ecx
push ebx
add esp, 4
add ecx, 0x1e18
or ecx, 0x3b3c
pop ecx
push ebx
push ebx
add esp, 4
add ebx, 0x13174
pop ebx
mov eax, dword [ebp - 0x3e4]
mov cl, byte [eax + 0xa]
mov byte [ebp - 0x3ed], cl
mov edx, dword [ebp - 0xac4]
sub edx, dword [ebp - 0x3e4]
mov dword [ebp - 0x169c], edx
mov dword [ebp - 0xcec], 0
push esi
and esi, 0x17476
xor esi, 0x1038c
add esi, 0x476a
sub esi, 0x495b
pop esi
push edi
push ebx
add esp, 4
sub edi, 0x3b8d
or edi, 0x5362
or edi, 0x947e
pop edi
mov byte [ebp - 0x9d8], 0x56
mov byte [ebp - 0x9d7], 0x69
mov byte [ebp - 0x9d6], 0x72
mov byte [ebp - 0x9d5], 0x74
mov byte [ebp - 0x9d4], 0x75
mov byte [ebp - 0x9d3], 0x61
mov byte [ebp - 0x9d2], 0x6c
mov byte [ebp - 0x9d1], 0x50
mov byte [ebp - 0x9d0], 0x72
mov byte [ebp - 0x9cf], 0x6f
mov byte [ebp - 0x9ce], 0x74
mov byte [ebp - 0x9cd], 0x65
mov byte [ebp - 0x9cc], 0x63
mov byte [ebp - 0x9cb], 0x74
mov byte [ebp - 0x9ca], 0
push eax
and eax, 0x15a7d
xor eax, 0x167d0
pop eax
push edi
push ebx
add esp, 4
call 0x40697b
add byte [ebp + 0x4f], al
dec ebx
inc ebx
dec ebp
dec esp
add esp, 4
sub edi, 0x12beb
pop edi
push ecx
xor ecx, 0x90f3
pop ecx
mov eax, dword fs:[0x18]
mov dword [ebp - 0x19c8], eax
mov ecx, dword [ebp - 0x19c8]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x19cc], edx
mov eax, dword [ebp - 0x19cc]
mov dword [ebp - 0x161c], eax
push edx
sub edx, 0x13269
or edx, 0xb57d
or edx, 0xd41a
pop edx
push ebx
call 0x4069d6
add byte [ecx + 0x36], cl
xor ecx, dword [ebp + ecx*2 + 0x43]
inc ecx
add esp, 4
xor ebx, 0x13478
or ebx, 0x1334
pop ebx
cmp dword [ebp - 0x161c], 0
jne 0x4069fe
mov dword [ebp - 0x2f4], 0
jmp 0x406ca5
mov ecx, dword [ebp - 0x161c]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcc8], eax
push ebx
push edx
add esp, 4
xor ebx, 0x15ba3
add ebx, 0x460f
pop ebx
push eax
add eax, 0xa8ff
sub eax, 0xd2f8
pop eax
push edi
push esi
add esp, 4
xor edi, 0x17331
xor edi, 0x12aad
pop edi
cmp dword [ebp - 0xcc8], 0
jne 0x406a5a
mov dword [ebp - 0x2f4], 0
jmp 0x406ca5
mov ecx, dword [ebp - 0xcc8]
mov dword [ebp - 0x518], ecx
push esi
jmp 0x406a6c
pop esi
push ebx
push esi
add esp, 4
or ebx, 0xfebc
call 0x406a88
add byte [ebx + 0x3b], al
inc ebx
push eax
xor esi, dword [esi]
inc esp
cmp eax, 0x4c48342
pop ebx
push esi
push edx
add esp, 4
or esi, 0x8bb5
pop esi
lea edx, [ebp - 0x1740]
mov dword [ebp - 0xcc4], edx
mov eax, dword [ebp - 0x518]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcc0], ecx
xor edx, edx
mov word [ebp - 0x21c], dx
xor eax, eax
mov word [ebp - 0x38], ax
push eax
sub eax, 0x1381b
jmp 0x406ad2
jmp 0x406ada
pop eax
push edx
push esi
add esp, 4
jmp 0x406ae7
add edx, 0xdba3
or edx, 0x5907
pop edx
mov ecx, dword [ebp - 0xcc0]
mov dx, word [ecx]
mov word [ebp - 0x1042], dx
mov eax, dword [ebp - 0xcc0]
add eax, 2
mov dword [ebp - 0xcc0], eax
mov cx, word [ebp - 0x1042]
mov word [ebp - 0x21c], cx
mov edx, dword [ebp - 0xcc4]
mov ax, word [edx]
mov word [ebp - 0x1044], ax
mov ecx, dword [ebp - 0xcc4]
add ecx, 2
mov dword [ebp - 0xcc4], ecx
mov dx, word [ebp - 0x1044]
mov word [ebp - 0x38], dx
push esi
add esi, 0x14a4
pop esi
push esi
push esi
add esp, 4
and esi, 0xc8d6
sub esi, 0xdf39
call 0x406b73
add byte [ebx + ecx*2 + 0x35], al
inc ebx
dec ecx
dec ebp
inc esp
cmp byte ss:[ebx - 0x317efb3c], al
stosd dword es:[edi], eax
inc ecx
add byte [eax], al
pop esi
movzx eax, word [ebp - 0x38]
test eax, eax
jne 0x406b9a
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
sub ecx, edx
mov dword [ebp - 0x1624], ecx
jmp 0x406bf4
movzx eax, word [ebp - 0x21c]
movzx ecx, word [ebp - 0x38]
cmp eax, ecx
je 0x406ac2
movzx edx, word [ebp - 0x21c]
xor edx, 0x20
movzx eax, word [ebp - 0x38]
cmp edx, eax
je 0x406ac2
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
cmp ecx, edx
jge 0x406bde
mov dword [ebp - 0x1620], 0xffffffff
jmp 0x406be8
mov dword [ebp - 0x1620], 1
mov eax, dword [ebp - 0x1620]
mov dword [ebp - 0x1624], eax
cmp dword [ebp - 0x1624], 0
jne 0x406c3d
push edx
push esi
add esp, 4
jmp 0x406c0a
and edx, 0xfc7b
or edx, 0x6f19
pop edx
push esi
push ebx
add esp, 4
add esi, 0x1e5e
or esi, 0x8f9c
and esi, 0x16b0f
pop esi
mov ecx, dword [ebp - 0x518]
mov dword [ebp - 0x2f4], ecx
jmp 0x406ca5
push edx
push edi
add esp, 4
xor edx, 0x3356
sub edx, 0x527b
pop edx
push esi
or esi, 0x1625a
pop esi
push eax
push ecx
add esp, 4
or eax, 0x2661
sub eax, 0x1813c
or eax, 0x11b87
pop eax
mov edx, dword [ebp - 0x518]
mov eax, dword [edx]
mov dword [ebp - 0x518], eax
mov ecx, dword [ebp - 0x518]
cmp ecx, dword [ebp - 0xcc8]
je 0x406c9b
mov edx, dword [ebp - 0x518]
cmp dword [edx + 0x30], 0
jne 0x406a66
mov dword [ebp - 0x2f4], 0
push ecx
push esi
add esp, 4
or ecx, 0x4c8f
add ecx, 0xd819
add ecx, 0x12007
pop ecx
push edx
xor edx, 0x13540
add edx, 0x1615e
sub edx, 0xc867
and edx, 0xac0b
pop edx
cmp dword [ebp - 0x2f4], 0
jne 0x4075dc
mov eax, 0x6b
mov word [ebp - 0x17c8], ax
mov ecx, 0x65
mov word [ebp - 0x17c6], cx
mov edx, 0x72
mov word [ebp - 0x17c4], dx
mov eax, 0x6e
mov word [ebp - 0x17c2], ax
mov ecx, 0x65
mov word [ebp - 0x17c0], cx
mov edx, 0x6c
mov word [ebp - 0x17be], dx
mov eax, 0x33
mov word [ebp - 0x17bc], ax
mov ecx, 0x32
mov word [ebp - 0x17ba], cx
mov edx, 0x2e
mov word [ebp - 0x17b8], dx
mov eax, 0x64
mov word [ebp - 0x17b6], ax
mov ecx, 0x6c
mov word [ebp - 0x17b4], cx
mov edx, 0x6c
mov word [ebp - 0x17b2], dx
xor eax, eax
mov word [ebp - 0x17b0], ax
push edx
sub edx, 0x4302
or edx, 0xf723
jmp 0x406d92
jmp 0x406d9a
pop edx
push esi
and esi, 0xf104
jmp 0x406da8
and esi, 0x84fb
pop esi
mov byte [ebp - 0x8a8], 0x4c
mov byte [ebp - 0x8a7], 0x6f
mov byte [ebp - 0x8a6], 0x61
mov byte [ebp - 0x8a5], 0x64
mov byte [ebp - 0x8a4], 0x4c
mov byte [ebp - 0x8a3], 0x69
mov byte [ebp - 0x8a2], 0x62
mov byte [ebp - 0x8a1], 0x72
mov byte [ebp - 0x8a0], 0x61
mov byte [ebp - 0x89f], 0x72
mov byte [ebp - 0x89e], 0x79
mov byte [ebp - 0x89d], 0x57
mov byte [ebp - 0x89c], 0
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19d0], ecx
mov edx, dword [ebp - 0x19d0]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19d4], eax
mov ecx, dword [ebp - 0x19d4]
mov dword [ebp - 0x1628], ecx
push esi
push edi
add esp, 4
or esi, 0x1812e
add esi, 0x3789
pop esi
push esi
call 0x406e53
add byte [edx + ecx*2], bh
cmp eax, 0x32493642
cmp dword [ebx - 0x397efb3c], eax
xchg ecx, eax
pop ss
add byte [eax], al
jmp 0x406e63
pop esi
cmp dword [ebp - 0x1628], 0
jne 0x406e7c
mov dword [ebp - 0x778], 0
jmp 0x407123
mov edx, dword [ebp - 0x1628]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcd4], ecx
push eax
push eax
add esp, 4
or eax, 0x677b
call 0x406ea6
add byte [esi + 0x4d], al
inc edi
inc eax
add esp, 4
call 0x406eb6
add byte [edx], bh
inc esp
inc ecx
cmp eax, dword [ebp + 0x36]
dec ebx
add esp, 4
and eax, 0xffbd
pop eax
cmp dword [ebp - 0xcd4], 0
jne 0x406ed8
mov dword [ebp - 0x778], 0
jmp 0x407123
mov edx, dword [ebp - 0xcd4]
mov dword [ebp - 0x51c], edx
push eax
push esi
add esp, 4
sub eax, 0x165be
pop eax
push edi
push ecx
add esp, 4
sub edi, 0x7382
call 0x406f0a
add byte [ebx], bh
xor eax, 0x35474136
xor eax, 0xc4834233
add al, 0xeb
push es
xor al, 0x50
aaa
aas
cmp eax, 0x858d5f40
cmp al, ch
invalid
push esi
and esi, 0x133e9
xor esi, 0x1809c
pop esi
push edi
push esi
add esp, 4
and edi, 0x53a3
and edi, 0xa643
call 0x407151
add byte [ecx + 0x35], al
dec esp
inc ebx
inc esi
aas
dec ecx
inc esi
add esp, 4
pop edi
cmp dword [ebp - 0x778], 0
jne 0x40719f
push esi
call 0x40716e
add byte [edx + 0x45], al
inc ecx
dec ecx
dec edx
cmp byte [edi + eax*2 + 0x3c], cl
add esp, 4
or esi, 0x145d2
call 0x407186
add byte [edx], dh
cmp cl, byte [ebp + edi + 0x47]
cmp byte [esi + 0x47], cl
dec ebp
add esp, 4
add esi, 0x17973
pop esi
mov dword [ebp - 0xac0], 0
jmp 0x407cc7
push ebx
or ebx, 0x137fa
and ebx, 0x36a
call 0x4071b8
add byte [edi + 0x36], cl
cmp al, byte [edi + 0x3f]
cmp al, byte [ebx + 0x7eb04c4]
inc edx
inc eax
aas
dec eax
cmp al, 0x4c
inc ebx
pop ebx
push edx
push ebx
add esp, 4
and edx, 0xbcab
pop edx
mov ecx, dword [ebp - 0x778]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3a4], edx
mov dword [ebp - 0x788], 0
mov eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x1674], eax
cmp dword [ebp - 0x1674], 0
jne 0x407210
mov ecx, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], ecx
jmp 0x407501
mov edx, dword [ebp - 0x1674]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1678], eax
jne 0x407238
mov ecx, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], ecx
jmp 0x407501
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1678]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1680], edx
cmp dword [ebp - 0x1680], 0
jne 0x40726a
mov eax, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], eax
jmp 0x407501
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [ebp - 0x1680]
mov dword [ebp - 0x77c], ecx
jne 0x40728f
mov edx, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], edx
jmp 0x407501
mov eax, dword [ebp - 0x77c]
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x19d8], ecx
mov edx, dword [ebp - 0x77c]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x19dc], eax
mov ecx, dword [ebp - 0x77c]
mov edx, dword [ebp - 0x3a4]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x19e0], edx
mov dword [ebp - 0x780], 0
jmp 0x4072e9