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

Disassembly:
push 0xffffffffffffffff
push 0x68337b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x98
push ebx
push ebp
mov ebp, ecx
push esi
push edi
xor esi, esi
mov al, byte [ebp + 0xd8]
lea edi, [ebp + 0xd8]
push esi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x1c], al
call fcn.004031c0
mov ecx, dword [0x6a3564]
push ecx
push esi
push edi
lea ecx, [esp + 0x24]
call fcn.00402fc0
mov eax, dword [esp + 0xb8]
mov ebp, dword [ebp + 0xbc]
xor ebx, ebx
cmp eax, 0x26
mov dword [esp + 0xb0], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], ebp
jne 0x4079de
cmp ebp, esi
jne 0x40771d
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0xb4], 0xffffffff
call fcn.004031c0
jmp 0x408092
mov edx, dword [esp + 0x20]
cmp edx, esi
je 0x408032
mov edi, dword [esp + 0x34]
xor esi, esi
xor ebp, ebp
cmp edi, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
jle 0x4079be
mov dword [esp + 0x28], 0xffffffff
cmp edx, esi
jb 0x40776b
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40776b
lea ecx, [esp + 0x18]
call fcn.00408320
mov edx, dword [esp + 0x1c]
lea eax, [edx + esi]
mov edx, dword [esp + 0x20]
jmp 0x407770
mov eax, 0x6a3560
test byte [eax], 0x80
je 0x40786a
push 2
lea eax, [esp + 0x7c]
push esi
push eax
lea ecx, [esp + 0x24]
call fcn.00408170
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xb0], 1
test eax, eax
mov dword [esp + 0x30], 0x6a3560
je 0x4077a6
mov dword [esp + 0x30], eax
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x48], cl
lea ecx, [esp + 0x48]
call fcn.004031c0
mov edi, dword [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x4c]
call fcn.004083a0
mov eax, dword [esp + 0x38]
mov byte [esp + 0xb0], 2
mov eax, dword [eax + 0xb0]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x407803
lea edx, [esp + 0x3c]
lea eax, [esp + 0x44]
push edx
push 2
push eax
call fcn.0042bcd0
push 1
lea ecx, [esp + 0x48]
mov byte [esp + 0xb4], 1
call fcn.004031c0
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x88]
mov edx, dword [ecx + 0x80]
sub eax, edx
cmp ebp, eax
jl 0x407843
mov ecx, dword [esp + 0x14]
mov ebx, esi
sub ebx, ecx
mov ecx, dword [esp + 0x28]
dec ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], esi
xor ebp, ebp
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
add esi, 2
add edx, 2
add ebp, ecx
mov dword [esp + 0x28], edx
mov byte [esp + 0xb0], 0
push 1
lea ecx, [esp + 0x7c]
jmp 0x4079a9
cmp edx, esi
jb 0x40788c
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40788c
lea ecx, [esp + 0x18]
call fcn.00408320
mov edx, dword [esp + 0x1c]
lea eax, [edx + esi]
mov edx, dword [esp + 0x20]
jmp 0x407891
mov eax, 0x6a3560
cmp byte [eax], 0xa
jne 0x4078b8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
xor ebp, ebp
inc esi
mov ebx, esi
inc eax
sub ebx, ecx
mov dword [esp + 0x28], eax
dec ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], eax
jmp 0x4079b6
push 1
lea eax, [esp + 0x8c]
push esi
push eax
lea ecx, [esp + 0x24]
call fcn.00408170
mov eax, dword [esp + 0x8c]
mov byte [esp + 0xb0], 3
test eax, eax
mov dword [esp + 0x30], 0x6a3560
je 0x4078eb
mov dword [esp + 0x30], eax
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x58], cl
lea ecx, [esp + 0x58]
call fcn.004031c0
mov edi, dword [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x5c]
call fcn.004083a0
mov eax, dword [esp + 0x38]
mov byte [esp + 0xb0], 4
mov eax, dword [eax + 0xb0]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x407948
lea edx, [esp + 0x3c]
lea eax, [esp + 0x54]
push edx
push 1
push eax
call fcn.0042bcd0
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0xb4], 3
call fcn.004031c0
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x88]
mov edx, dword [ecx + 0x80]
sub eax, edx
cmp ebp, eax
jl 0x407988
mov ecx, dword [esp + 0x14]
mov ebx, esi
sub ebx, ecx
mov ecx, dword [esp + 0x28]
dec ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], esi
xor ebp, ebp
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
add ebp, edi
inc esi
inc ecx
mov byte [esp + 0xb0], 0
mov dword [esp + 0x28], ecx
push 1
lea ecx, [esp + 0x8c]
call fcn.004031c0
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
cmp esi, edi
jl 0x407749
sub edi, dword [esp + 0x14]
mov esi, edi
cmp ebx, esi
jge 0x4079d1
mov esi, dword [esp + 0x2c]
jmp 0x408026
mov eax, dword [esp + 0x2c]
sub esi, ebx
add esi, eax
jmp 0x408026
cmp eax, 0x28
jne 0x407e41
mov edx, dword [esp + 0x20]
cmp ebp, edx
je 0x407702
cmp edx, esi
je 0x408032
xor ebp, ebp
mov dword [esp + 0x64], edx
cmp edx, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov byte [esp + 0x13], 0
jle 0x407e04
mov ecx, dword [esp + 0x1c]
cmp edx, ebp
jb 0x407a40
test ecx, ecx
je 0x407a40
lea ecx, [esp + 0x18]
call fcn.00408320
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea eax, [ecx + ebp]
jmp 0x407a45
mov eax, 0x6a3560
test byte [eax], 0x80
je 0x407b73
push 2
lea edx, [esp + 0x9c]
push ebp
push edx
lea ecx, [esp + 0x24]
call fcn.00408170
mov esi, dword [esp + 0x9c]
mov byte [esp + 0xb0], 5
test esi, esi
jne 0x407a7a
mov esi, 0x6a3560
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x6c], al
call fcn.004031c0
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x34], ecx
push ecx
lea ecx, [esp + 0x70]
call fcn.00403350
test al, al
je 0x407acf
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x6c]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x6c]
call fcn.00403330
mov esi, dword [esp + 0x38]
mov byte [esp + 0xb0], 6
mov eax, dword [esi + 0xb0]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x407afc
lea eax, [esp + 0x3c]
lea edx, [esp + 0x68]
push eax
push 2
push edx
call fcn.0042bcd0
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xb4], 5
call fcn.004031c0
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 0x80]
mov ecx, dword [esp + 0x2c]
sub eax, edi
cmp ecx, eax
jl 0x407b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov ebx, ebp
sub ebx, eax
dec ebx
cmp ecx, ebp
jge 0x407b46
cmp byte [esp + 0x13], 1
je 0x407dc7
mov byte [esp + 0x13], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebp
xor ecx, ecx
mov edx, dword [esp + 0x3c]
add ebp, 2
add ecx, edx
mov byte [esp + 0xb0], 0
mov dword [esp + 0x2c], ecx
push 1
lea ecx, [esp + 0x9c]
jmp 0x407db0
cmp edx, ebp
jb 0x407b8c
test ecx, ecx
je 0x407b8c
lea ecx, [esp + 0x18]
call fcn.00408320
mov eax, dword [esp + 0x1c]
add eax, ebp
jmp 0x407b91
mov eax, 0x6a3560
mov cl, byte [eax]
push 1
cmp cl, 0xa
push ebp
jne 0x407c9f
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x24]
call fcn.00408170
mov esi, dword [esp + 0x8c]
mov byte [esp + 0xb0], 7
test esi, esi
jne 0x407bc8
mov esi, 0x6a3560
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x58]
mov byte [esp + 0x58], dl
call fcn.004031c0
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x58]
push ebx
call fcn.00403350
test al, al
je 0x407c17
mov edi, dword [esp + 0x58]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x58]
call fcn.00403330
mov ecx, dword [esp + 0x38]
mov byte [esp + 0xb0], 8
mov eax, dword [ecx + 0xb0]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x407c44
lea edx, [esp + 0x3c]
lea eax, [esp + 0x54]
push edx
push 1
push eax
call fcn.0042bcd0
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0xb4], 7
call fcn.004031c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
inc ebp
mov ebx, ebp
sub ebx, eax
dec ebx
cmp ecx, ebp
jge 0x407c79
cmp byte [esp + 0x13], 1
je 0x407dda
mov byte [esp + 0x13], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], 0
mov byte [esp + 0xb0], 0
push 1
lea ecx, [esp + 0x8c]
jmp 0x407db0
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x24]
call fcn.00408170
mov esi, dword [esp + 0x7c]
mov byte [esp + 0xb0], 9
test esi, esi
jne 0x407cc5
mov esi, 0x6a3560
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x48]
mov byte [esp + 0x48], dl
call fcn.004031c0
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x34], ecx
push ecx
lea ecx, [esp + 0x4c]
call fcn.00403350
test al, al
je 0x407d1a
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x48]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x48]
call fcn.00403330
mov esi, dword [esp + 0x38]
mov byte [esp + 0xb0], 0xa
mov eax, dword [esi + 0xb0]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x407d47
lea eax, [esp + 0x3c]
lea edx, [esp + 0x44]
push eax
push 1
push edx
call fcn.0042bcd0
push 1
lea ecx, [esp + 0x48]
mov byte [esp + 0xb4], 9
call fcn.004031c0
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 0x80]
mov ecx, dword [esp + 0x2c]
sub eax, edi
cmp ecx, eax
jl 0x407d97
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov ebx, ebp
sub ebx, eax
dec ebx
cmp ecx, ebp
jge 0x407d8d
cmp byte [esp + 0x13], 1
je 0x407ded
mov byte [esp + 0x13], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebp
xor ecx, ecx
mov edx, dword [esp + 0x3c]
mov byte [esp + 0xb0], 0
add ecx, edx
inc ebp
mov dword [esp + 0x2c], ecx
push 1
lea ecx, [esp + 0x7c]
call fcn.004031c0
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
cmp ebp, eax
jl 0x407a1e
jmp 0x407e04
mov byte [esp + 0xb0], 0
push 1
lea ecx, [esp + 0x9c]
jmp 0x407dfb
mov byte [esp + 0xb0], 0
push 1
lea ecx, [esp + 0x8c]
jmp 0x407dfb
mov byte [esp + 0xb0], 0
push 1
lea ecx, [esp + 0x7c]
call fcn.004031c0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
sub eax, ecx
jns 0x407e12
xor eax, eax
cmp ebx, eax
jge 0x407e1f
mov eax, dword [esp + 0x14]
lea esi, [ebx + eax]
jmp 0x407e26
mov ecx, dword [esp + 0x14]
lea esi, [eax + ecx]
cmp ebp, edx
jne 0x408026
mov al, byte [esp + 0x13]
test al, al
jne 0x408026
mov esi, ebp
jmp 0x408026
cmp eax, 0x24
jne 0x407f23
cmp ebp, esi
je 0x407702
mov edx, dword [esp + 0x20]
cmp edx, esi
je 0x408032
mov ebx, dword [esp + 0x34]
xor edi, edi
test ebx, ebx
jle 0x407f1a
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
cmp edx, edi
jb 0x407eb1
test eax, eax
je 0x407eb1
mov cl, byte [eax - 1]
test cl, cl
je 0x407e9c
cmp cl, 0xff
je 0x407e9c
push 0
push edx
lea ecx, [esp + 0x20]
call fcn.00403350
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x407eac
mov byte [eax - 1], 0xff
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edi]
jmp 0x407eb6
mov ecx, 0x6a3560
test byte [ecx], 0x80
je 0x407ec0
add edi, 2
jmp 0x407f0d
cmp edx, edi
jb 0x407efd
test eax, eax
je 0x407efd
mov cl, byte [eax - 1]
test cl, cl
je 0x407ee8
cmp cl, 0xff
je 0x407ee8
push 0
push edx
lea ecx, [esp + 0x20]
call fcn.00403350
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x407ef8
mov byte [eax - 1], 0xff
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edi]
jmp 0x407f02
mov ecx, 0x6a3560
cmp byte [ecx], 0xa
jne 0x407f0c
inc edi
mov esi, edi
jmp 0x407f0d
inc edi
cmp edi, ebx
jl 0x407e74
jmp 0x408026
mov esi, dword [esp + 0x14]
jmp 0x408026
cmp eax, 0x23
jne 0x408032
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
cmp eax, edx
jne 0x407f6c
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xb0], 0xffffffff
test ecx, ecx
je 0x408092
mov al, byte [ecx - 1]
test al, al
je 0x408088
cmp al, 0xff
je 0x408088
dec al
mov byte [ecx - 1], al
jmp 0x408092
test edx, edx
je 0x408032
mov ebx, dword [esp + 0x34]
mov edi, edx
cmp edx, ebx
mov esi, edx
jle 0x408026
mov eax, dword [esp + 0x1c]
cmp edx, edi
jb 0x407fc5
test eax, eax
je 0x407fc5
mov cl, byte [eax - 1]
test cl, cl
je 0x407fb0
cmp cl, 0xff
je 0x407fb0
push 0
push edx
lea ecx, [esp + 0x20]
call fcn.00403350
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x407fc0
mov byte [eax - 1], 0xff
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edi]
jmp 0x407fca
mov ecx, 0x6a3560
test byte [ecx], 0x80
je 0x407fd4
sub edi, 2
jmp 0x40801e
cmp edx, edi
jb 0x408011
test eax, eax
je 0x408011
mov cl, byte [eax - 1]
test cl, cl
je 0x407ffc
cmp cl, 0xff
je 0x407ffc
push 0
push edx
lea ecx, [esp + 0x20]
call fcn.00403350
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40800c
mov byte [eax - 1], 0xff
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edi]
jmp 0x408016
mov ecx, 0x6a3560
cmp byte [ecx], 0xa
jne 0x40801d
mov esi, edi
dec edi
cmp edi, ebx
jg 0x407f88
cmp esi, edx
jbe 0x40802c
mov esi, edx
test esi, esi
jge 0x408032
xor esi, esi
mov edi, dword [esp + 0x38]
push esi
push esi
push 0xb1
test dword [edi + 0x78], 0x80000000
je 0x40804f
mov edx, dword [0x6dfe88]
push edx
jmp 0x408055
mov eax, dword [0x6dfe84]
push eax
call dword [sym.imp.user32.dll_SendMessageA]
push esi
mov ecx, edi
call fcn.00405a30
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xb0], 0xffffffff
test ecx, ecx
je 0x408092
mov al, byte [ecx - 1]
test al, al
je 0x408088
cmp al, 0xff
je 0x408088
dec al
mov byte [ecx - 1], al
jmp 0x408092
dec ecx
push ecx
call fcn.006713a0
add esp, 4
mov ecx, dword [esp + 0xa8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa4
ret 4