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

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x1074
call fcn.0040d8d0
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
xor esi, esi
mov edi, 0x15
cmp edi, ebx
mov edi, 0
sbb edi, eax
jb 0x406861
mov dword [ecx + 0x1c], 8
jmp 0x406a65
mov dword [esp + 0x10], edx
mov dword [esp], ecx
mov ebp, ebx
add ebp, 0xfffff000
mov edi, eax
adc edi, 0xffffffff
mov edx, 0x1000
cmp edx, ebx
sbb esi, eax
jl 0x406884
xor edi, edi
xor ebp, ebp
sub ebx, ebp
sbb eax, edi
cmp ebx, 0x1000
mov ecx, dword [esp]
jb 0x406898
mov ebx, 0x1000
test eax, eax
je 0x4068a1
mov ebx, 0x1000
lea eax, [esp + 0x74]
push ebx
push eax
push edi
push ebp
push dword [ecx + 0x44]
call dword [ecx + 0x38]
add esp, 0x14
jmp 0x4068d3
push ebx
lea eax, [esp + 0x78]
push eax
push edi
push esi
push dword [ecx + 0x44]
call dword [ecx + 0x38]
add esp, 0x14
mov ebp, esi
cmp eax, ebx
jne 0x4069b8
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
cmp ebx, 4
mov edx, dword [esp]
jb 0x406930
add ebx, 0xfffffffc
jmp 0x4068f9
lea eax, [ebx - 1]
test ebx, ebx
mov ebx, eax
jle 0x406930
cmp dword [esp + ebx + 0x74], 0x6054b50
jne 0x4068f0
mov eax, dword [edx]
mov esi, dword [esp + 8]
add esi, ebx
mov ebp, dword [esp + 4]
adc ebp, 0
mov ecx, dword [edx + 4]
sub eax, esi
sbb ecx, ebp
mov edi, 0x15
cmp edi, eax
mov eax, 0
sbb eax, ecx
jae 0x4068f0
jmp 0x4069c7
mov ebp, dword [esp + 8]
mov eax, ebp
mov edi, dword [esp + 4]
or eax, edi
je 0x406a72
mov ebx, dword [edx]
mov eax, dword [edx + 4]
mov ecx, ebx
sub ecx, ebp
mov edx, eax
sbb edx, edi
mov esi, 0x10014
cmp esi, ecx
mov ecx, 0
sbb ecx, edx
jb 0x4069b8
mov esi, ebp
cmp ebp, 0xffe
jae 0x40696e
mov esi, 0xffd
test edi, edi
mov ecx, dword [esp]
jg 0x4069b0
mov ebp, 0xffd
jne 0x4069b2
jg 0x406980
xor edi, edi
add esi, 0xfffff003
adc edi, 0xffffffff
sub ebx, esi
sbb eax, edi
cmp ebx, 0x1000
jb 0x40699a
mov ebx, 0x1000
test eax, eax
je 0x4068c0
mov ebx, 0x1000
jmp 0x4068c0
je 0x40697c
mov esi, ebp
jle 0x40697e
jmp 0x406980
mov edx, dword [esp]
mov dword [edx + 0x1c], 7
jmp 0x406a65
push 0x16
lea eax, [esp + 0x78]
push eax
push ebp
push esi
push dword [edx + 0x44]
mov edi, edx
call dword [edx + 0x38]
add esp, 0x14
cmp eax, 0x16
jne 0x406a52
cmp dword [esp + 0x74], 0x6054b50
jne 0x406a5b
cmp esi, 0x4c
mov eax, ebp
sbb eax, 0
mov edx, dword [esp]
jl 0x406aa9
add esi, 0xffffffec
adc ebp, 0xffffffff
lea eax, [esp + 0x60]
push 0x14
push eax
push ebp
push esi
push dword [edx + 0x44]
mov eax, dword [esp + 0x14]
call dword [eax + 0x38]
mov edx, dword [esp + 0x14]
add esp, 0x14
cmp eax, 0x14
jne 0x406aa9
cmp dword [esp + 0x60], 0x7064b50
jne 0x406aa9
mov eax, dword [esp + 0x68]
mov edi, edx
mov edx, dword [edx]
mov esi, dword [edi + 4]
add edx, 0xffffffc8
adc esi, 0xffffffff
mov ecx, dword [esp + 0x6c]
cmp edx, eax
sbb esi, ecx
jae 0x406a7c
mov dword [edi + 0x1c], 8
jmp 0x406a65
mov dword [edi + 0x1c], 0x14
jmp 0x406a65
mov eax, dword [esp]
mov dword [eax + 0x1c], 8
xor eax, eax
add esp, 0x1074
pop esi
pop edi
pop ebx
pop ebp
ret
test edx, edx
jne 0x4069bb
jmp 0x406a65
lea edx, [esp + 0x28]
push 0x38
push edx
push ecx
push eax
push dword [edi + 0x44]
call dword [edi + 0x38]
add esp, 0x14
cmp eax, 0x38
mov edx, edi
jne 0x406aa9
cmp dword [esp + 0x28], 0x6064b50
jne 0x406aa9
mov eax, dword [edx + 0x48]
mov dword [eax + 0x34], 1
movzx eax, word [esp + 0x7e]
mov dword [edx + 0x10], eax
mov edi, dword [edx + 0x48]
cmp dword [edi + 0x34], 0
je 0x406ad9
xor eax, eax
mov ecx, 0x2b
cmp ecx, dword [esp + 0x2c]
mov ecx, 0
sbb ecx, dword [esp + 0x30]
jb 0x406b34
mov dword [edx + 0x1c], 9
jmp 0x406a67
movzx ecx, word [esp + 0x7c]
movzx esi, word [esp + 0x78]
movzx edx, word [esp + 0x7a]
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov dword [esp + 4], 0
cmp eax, ecx
jne 0x406f20
mov ecx, esi
or ecx, edx
je 0x406b1e
cmp esi, 1
jne 0x406f20
cmp edx, 1
jne 0x406f20
imul ecx, eax, 0x2e
cmp ebx, ecx
jae 0x406b5a
mov eax, dword [esp]
mov dword [eax + 0x1c], 9
jmp 0x406a65
cmp dword [esp + 0x70], 1
jne 0x406b4e
cmp dword [esp + 0x4c], 0
je 0x406b87
mov dword [edx + 0x1c], 2
jmp 0x406a65
mov dword [edx + 0x1c], 0xa
jmp 0x406a65
mov dword [esp + 0x24], esi
mov ecx, ebx
mov ebx, ebp
mov dword [esp + 8], ecx
add ebx, ecx
mov edx, dword [esp + 4]
adc edx, 0
mov ecx, dword [esp]
mov esi, dword [ecx + 4]
cmp dword [ecx], ebx
sbb esi, edx
jae 0x406bb4
mov dword [ecx + 0x1c], 9
jmp 0x406a65
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
mov ebx, edx
mov edx, dword [esp + 0x54]
mov dword [ebx + 0x10], eax
test esi, esi
je 0x406ebe
mov dword [ebx + 0x1c], 2
jmp 0x406a65
mov dword [ecx + 8], ebp
mov edx, dword [esp + 4]
mov dword [ecx + 0xc], edx
test eax, eax
je 0x406ed1
mov ebx, dword [esp + 8]
cmp dword [edi + 8], ebx
jae 0x406bee
push ebx
push dword [edi + 0xc]
push dword [edi]
push dword [ecx + 0x34]
call dword [ecx + 0x30]
add esp, 0x10
test eax, eax
je 0x406ef3
mov dword [edi], eax
mov dword [edi + 8], ebx
mov ecx, dword [esp]
mov dword [edi + 4], ebx
mov esi, dword [ecx + 0x10]
mov edi, dword [ecx + 0x48]
cmp dword [edi + 0x18], esi
jae 0x406c1d
push esi
push dword [edi + 0x1c]
push dword [edi + 0x10]
push dword [ecx + 0x34]
call dword [ecx + 0x30]
add esp, 0x10
test eax, eax
je 0x406ef3
mov dword [edi + 0x10], eax
mov dword [edi + 0x18], esi
mov ecx, dword [esp]
mov dword [edi + 0x14], esi
mov edi, dword [esp + 0x10]
test edi, 0x800
jne 0x406c5f
mov esi, dword [ecx + 0x10]
mov edi, dword [ecx + 0x48]
cmp dword [edi + 0x28], esi
jae 0x406c58
push esi
push dword [edi + 0x2c]
push dword [edi + 0x20]
push dword [ecx + 0x34]
call dword [ecx + 0x30]
add esp, 0x10
test eax, eax
je 0x406ef3
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], esi
mov ecx, dword [esp]
mov dword [edi + 0x24], esi
mov edi, dword [esp + 0x10]
mov eax, dword [ecx + 0x48]
push ebx
push dword [eax]
push dword [esp + 0xc]
push ebp
push dword [ecx + 0x44]
mov esi, ecx
call dword [ecx + 0x38]
add esp, 0x14
cmp eax, ebx
jne 0x406f2f
mov dword [esp + 0x20], ebp
cmp dword [esi + 0x10], 0
mov ecx, esi
mov ebp, dword [esp + 0x24]
je 0x406eac
mov eax, dword [ecx + 0x48]
mov edx, dword [eax]
add dword [esp + 0x20], 0x2e
adc dword [esp + 4], 0
mov dword [esp + 0x14], 0
cmp ebx, 0x2e
jb 0x406b7b
cmp dword [edx], 0x2014b50
jne 0x406b7b
mov eax, dword [ecx + 0x48]
mov dword [esp + 0xc], edx
sub edx, dword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 0x14]
mov dword [eax + esi*4], edx
test edi, 0x800
jne 0x406ce5
mov eax, dword [ecx + 0x48]
mov eax, dword [eax + 0x20]
mov edx, dword [esp + 0x14]
mov dword [eax + edx*4], edx
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x1c], eax
mov esi, dword [edx + 0x18]
mov eax, dword [ecx + 0x48]
cmp dword [eax + 0x38], 0
jne 0x406e00
movzx eax, word [edx + 0x1e]
test ax, ax
je 0x406e00
mov edi, ebp
mov ecx, dword [esp + 0x1c]
mov ebp, ecx
mov dword [esp + 0x18], esi
cmp ecx, esi
ja 0x406d21
mov ebp, dword [esp + 0x18]
mov edx, dword [edx + 0x2a]
cmp ebp, edx
ja 0x406d2a
mov ebp, edx
cmp ebp, 0xffffffff
mov ecx, dword [esp]
mov edx, dword [esp + 0xc]
mov ebp, edi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jne 0x406e00
movzx ebp, word [edx + 0x1c]
movzx edi, ax
lea eax, [edi + ebp]
add eax, 0x2e
mov dword [esp + 8], ebx
cmp eax, ebx
jbe 0x406d94
push edi
call fcn.00415734
add esp, 4
test eax, eax
je 0x406ef3
mov esi, eax
add ebp, dword [esp + 0x20]
mov eax, dword [esp + 4]
adc eax, 0
push edi
push esi
push eax
push ebp
mov eax, dword [esp + 0x10]
push dword [eax + 0x44]
call dword [eax + 0x38]
add esp, 0x14
cmp eax, edi
jne 0x406f61
mov eax, esi
jmp 0x406da0
mov eax, dword [esp + 0xc]
lea esi, [eax + ebp]
add esi, 0x2e
xor eax, eax
cmp edi, 3
jbe 0x406f3b
movzx ecx, word [esi + 2]
lea edx, [ecx + 4]
cmp edx, edi
ja 0x406f3b
cmp word [esi], 1
je 0x406dc9
add esi, edx
sub edi, ecx
add edi, 0xfffffffc
jne 0x406da0
jmp 0x406de0
mov edx, dword [esp]
mov ecx, dword [edx + 0x48]
mov dword [ecx + 0x34], 1
mov ecx, dword [edx + 0x48]
mov dword [ecx + 0x38], 1
push eax
call fcn.0041568c
add esp, 4
mov ecx, dword [esp]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x406e28
cmp esi, 0xffffffff
je 0x406e28
cmp dword [edx + 0xa], 0
jne 0x406e1c
cmp esi, eax
jne 0x406b7b
test esi, esi
je 0x406e28
test eax, eax
je 0x406b7b
movzx eax, word [edx + 0x22]
cmp eax, 0xffff
je 0x406f49
cmp ax, 1
je 0x406e45
cmp ebp, eax
jne 0x406f49
mov esi, dword [esp + 0x1c]
cmp esi, 0xffffffff
je 0x406e6d
xor eax, eax
add esi, dword [edx + 0x2a]
setb al
add esi, 0x1e
adc eax, 0
mov edx, dword [ecx + 4]
cmp dword [ecx], esi
sbb edx, eax
mov edx, dword [esp + 0xc]
jb 0x406b7b
test byte [edx + 9], 0x20
jne 0x406f55
movzx eax, word [edx + 0x1c]
mov esi, edx
movzx edx, word [edx + 0x1e]
add edx, eax
movzx eax, word [esi + 0x20]
add eax, edx
add eax, 0x2e
sub ebx, eax
jb 0x406b7b
add esi, eax
mov eax, dword [esp + 0x14]
inc eax
mov edx, eax
mov dword [esp + 0x14], eax
cmp eax, dword [ecx + 0x10]
mov edx, esi
jb 0x406ca8
mov eax, 1
test edi, 0x800
je 0x406ee4
jmp 0x406a67
test edx, edx
je 0x406f02
mov eax, dword [esp]
mov dword [eax + 0x1c], 0xf
jmp 0x406a65
mov eax, 1
test dword [esp + 0x10], 0x800
jne 0x406a67
call fcn.0040b740
mov eax, 1
jmp 0x406a67
mov eax, dword [esp]
mov dword [eax + 0x1c], 0x10
jmp 0x406a65
mov ebx, ebp
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x58]
cmp eax, ecx
je 0x406b06
mov eax, dword [esp]
mov dword [eax + 0x1c], 0xa
jmp 0x406a65
mov dword [esi + 0x1c], 0x14
jmp 0x406a65
push eax
call fcn.0041568c
add esp, 4
jmp 0x406b25
mov dword [ecx + 0x1c], 0xa
jmp 0x406a65
mov dword [ecx + 0x1c], 5
jmp 0x406a65
push esi
call fcn.0041568c
add esp, 4
mov eax, dword [esp]
mov dword [eax + 0x1c], 0x14
jmp 0x406a65