Function at 0x67186341
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x516c
call fcn.671a3a80
mov eax, dword [0x6744365c]
xor eax, esp
mov dword [esp + 0x5168], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x5198]
xor edx, edx
mov ecx, dword [esp + 0x5188]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5180]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x5184]
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x518c]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0x5194]
mov dword [esp + 0x7c], ebp
lea ebx, [eax + ebx*2]
mov dword [esp + 0x80], ebx
mov esi, ecx
lea edi, [ebx - 2]
mov dword [esp + 0x64], edi
lea edi, [esp + 0x178]
mov dword [esp + 0xdc], edi
mov edi, edx
cmp ecx, 0xffffffff
jne 0x671863fc
push eax
call fcn.6719fc49
pop ecx
mov ecx, eax
xor edx, edx
mov dword [esp + 0x34], ecx
xor eax, eax
cmp esi, 0xffffffff
sete al
test dword [esp + 0x5190], 0x1fff9fc0
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x50], ecx
jne 0x67187579
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x67187575
test eax, eax
je 0x67187575
test ebp, ebp
je 0x67187575
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x34]
jbe 0x67186455
push 0xffffffffffffffdf
jmp 0x6718757b
cmp dword [esi + 0x38], 0x50435245
je 0x67186465
push 0xffffffffffffffe1
jmp 0x6718757b
mov ecx, dword [esi + 0x48]
mov eax, ecx
and al, 7
cmp al, 2
je 0x67186477
push 0xffffffffffffffe0
jmp 0x6718757b
mov eax, dword [esp + 0x5190]
shr ecx, 0xe
and ecx, 0xc
or eax, ecx
mov dword [esp + 0x5190], eax
cmp dword [esi + 0x10], edx
je 0x6718649e
test eax, 0xbfffbfc0
jne 0x6718649e
xor esi, esi
inc esi
jmp 0x671864a0
mov esi, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], 2
mov edx, dword [eax + 0x40]
mov eax, edx
shr eax, 0x13
and eax, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5190]
mov ecx, eax
shr eax, 4
and eax, 1
and cl, 0x20
cmovne eax, dword [esp + 0x18]
movzx eax, ax
mov word [esp + 0x110], ax
test ax, ax
je 0x671864fa
mov eax, edx
or eax, dword [esp + 0x5190]
test eax, 0x20000000
jne 0x67187579
mov eax, dword [esp + 0x40]
test eax, eax
je 0x67186517
cmp dword [eax + 0x24], 0xffffffff
je 0x67186517
test edx, 0x800000
jne 0x67186517
push 0xffffffffffffffc8
jmp 0x6718757b
test byte [ebp + 0x25], 1
je 0x67186530
push dword [ebp + 8]
push dword [ebp + 0x10]
call dword [ebp + 4]
and byte [ebp + 0x25], 0xfe
mov edx, dword [esp + 0x28]
pop ecx
pop ecx
xor eax, eax
mov dword [esp + 0x30], 0xdc00
mov ecx, 0xfc00
mov dword [ebp + 0x10], eax
test esi, esi
mov dword [ebp + 0x20], eax
mov esi, dword [esp + 0x5190]
mov dword [esp + 0x54], ecx
je 0x6718667b
cmp dword [esp + 0x14], eax
je 0x67186608
test esi, 0x40000000
jne 0x67186608
test edx, 0x4000000
jne 0x67186608
cmp ebx, dword [esp + 0x10]
jae 0x67186596
mov ax, word [ebx]
and ax, cx
cmp ax, word [esp + 0x30]
jne 0x67186596
cmp dword [esp + 0x44], edi
jmp 0x67186721
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
movzx ecx, word [eax + 0x64]
test ecx, ecx
je 0x671865d1
mov esi, dword [esp + 0x18]
cmp ebx, edx
jbe 0x671865d1
sub ebx, esi
cmp ebx, edx
jbe 0x671865cc
mov edi, 0xfc00
mov ax, word [ebx]
and ax, di
cmp ax, word [esp + 0x30]
jne 0x671865cc
sub ebx, esi
cmp ebx, edx
ja 0x671865b9
sub ecx, 1
jne 0x671865aa
mov eax, dword [esp + 0x34]
lea edi, [ebp + 0x20]
mov esi, ebx
sub esi, edx
sar esi, 1
push edi
sub eax, esi
push eax
push ebx
call fcn.671a22a1
add esp, 0xc
mov dword [ebp + 0x28], eax
test eax, eax
je 0x671865f9
add dword [edi], esi
jmp 0x6718757c
mov esi, dword [esp + 0x5190]
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x40]
push eax
push ebp
push esi
push dword [esp + 0x50]
push dword [esp + 0x44]
push dword [esp + 0x38]
push dword [esp + 0x34]
call fcn.6719c90c
mov edi, eax
add esp, 0x1c
cmp edi, 0xffffffd3
je 0x67186675
test edi, edi
js 0x6718666e
test esi, 0x4000
je 0x6718666e
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x74]
push dword [ebp + 8]
lea esi, [esi + eax]
add esi, esi
push esi
call dword [ebp]
mov dword [ebp + 0x10], eax
pop ecx
pop ecx
test eax, eax
je 0x67187571
mov ecx, dword [esp + 0x24]
push esi
push ecx
push eax
call fcn.671a4d7a
add esp, 0xc
or byte [ebp + 0x25], 1
mov eax, edi
jmp 0x6718757c
mov edi, dword [esp + 0x3c]
xor eax, eax
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x124], ecx
je 0x671867eb
test edi, edi
jne 0x671867eb
test esi, 0x40000000
mov esi, dword [esp + 0x20]
je 0x671866b1
test esi, 0x4000000
je 0x671867eb
mov edx, dword [esp + 0x10]
mov ecx, eax
mov eax, esi
and eax, 0x4000000
cmp ebx, edx
jae 0x671866e3
test eax, eax
je 0x6718670a
mov edi, 0xfc00
mov ax, word [ebx]
and ax, di
cmp ax, word [esp + 0x30]
jne 0x671866e3
add ebx, dword [esp + 0x18]
xor ecx, ecx
inc ecx
cmp ebx, edx
jb 0x671866cb
mov edi, dword [esp + 0x24]
mov edx, ebx
mov dword [esp + 0x124], edx
test ecx, ecx
jne 0x67186756
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + 0x64]
test ecx, ecx
je 0x67186756
mov esi, dword [esp + 0x18]
cmp edx, edi
jbe 0x67186752
jmp 0x67186740
mov ax, word [ebx]
mov edx, 0xfc00
and ax, dx
cmp ax, word [esp + 0x30]
jne 0x671866e3
cmp dword [esp + 0x44], 0
jbe 0x6718672a
push 0xffffffffffffffdc
jmp 0x6718757b
push 0xffffffffffffffe6
jmp 0x6718757b
mov ax, word [edx]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x30]
jne 0x6718674d
sub edx, esi
mov dword [esp + 0x124], edx
cmp edx, edi
ja 0x67186731
sub ecx, 1
jne 0x67186704
mov esi, dword [esp + 0x20]
lea eax, [ebp + 0x20]
push eax
jmp 0x671867ca
mov ecx, dword [esp + 0x124]
mov eax, dword [ebp + 0x20]
sub ecx, edi
sar ecx, 1
add eax, ecx
lea ecx, [ebp + 0x20]
mov dword [ecx], eax
test esi, 0x4000000
je 0x67186855
xor edx, edx
cmp dword [ebp + 0x28], edx
jg 0x67186855
lea eax, [edi + eax*2]
mov dword [esp + 0x10], eax
cmp eax, ebx
jae 0x6718684b
lea edx, [eax + 2]
mov dword [esp + 0x124], edx
cmp edx, ebx
jae 0x671867c9
mov esi, dword [esp + 0x18]
mov ax, word [edx]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x30]
jne 0x671867c5
add edx, esi
mov dword [esp + 0x124], edx
cmp edx, ebx
jb 0x671867a9
mov esi, dword [esp + 0x20]
push ecx
mov eax, dword [esp + 0x38]
mov ecx, edx
sub ecx, edi
sar ecx, 1
sub eax, ecx
push eax
push edx
call fcn.671a22a1
add esp, 0xc
mov dword [ebp + 0x28], eax
test eax, eax
jne 0x6718675c
xor edx, edx
mov eax, dword [esp + 0x40]
lea edi, [esp + 0xc4]
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x67186802
mov esi, eax
movsd dword es:[edi], dword [esi]
test eax, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, 0x6738d1d0
cmovne edi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x40]
mov esi, ecx
or esi, dword [esp + 0x5190]
mov eax, dword [eax + 0x48]
shr esi, 0x1f
mov dword [esp + 0x20], esi
mov esi, ecx
shr esi, 8
and esi, 1
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x24]
cmp eax, 0xffffffff
jne 0x6718685d
mov eax, dword [esp + 0x50]
jmp 0x67186860
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
jmp 0x671867ed
mov eax, dword [ebp + 0x28]
jmp 0x6718757c
lea eax, [esi + eax*2]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x84]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x10]
sub eax, esi
mov dword [esp + 0x9c], esi
sar eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x174], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x128], eax
mov dword [esp + 0x120], esi
mov esi, dword [esp + 0x40]
mov eax, esi
shr eax, 0xc
and eax, 1
mov dword [esp + 0xc0], edx
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x1c]
cmp word [eax + 0x64], dx
ja 0x671868f4
test esi, 0x2000
jne 0x671868f4
mov eax, edx
jmp 0x671868f7
xor eax, eax
inc eax
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x1c]
and dword [esp + 0x15c], 0
mov dword [esp + 0x158], edx
mov dword [esp + 0x13c], edx
lea esi, [eax + 0x70]
mov dword [esp + 0x138], edx
movzx edx, word [eax + 0x6e]
movzx eax, word [eax + 0x6c]
mov word [esp + 0x116], ax
imul eax, edx
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x1c]
push 0xd
mov dword [esp + 0x11c], esi
mov word [esp + 0x118], dx
lea eax, [esi + eax*2]
mov dword [esp + 0x120], eax
mov ax, word [ecx + 0x60]
mov word [esp + 0x116], ax
movzx eax, word [ecx + 0x62]
pop esi
push 0xa
pop edx
sub eax, 1
je 0x671869e1
sub eax, 1
je 0x671869d7
sub eax, 1
je 0x671869ba
sub eax, 1
je 0x671869ad
sub eax, 1
je 0x671869a0
sub eax, 1
je 0x67186994
push 0xffffffffffffffd4
jmp 0x6718757b
xor eax, eax
mov word [esp + 0x164], ax
jmp 0x671869e9
mov eax, dword [esp + 0x18]
mov dword [esp + 0x15c], eax
jmp 0x671869f4
mov dword [esp + 0x15c], 1
jmp 0x671869f4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x160], eax
mov word [esp + 0x164], si
mov word [esp + 0x166], dx
jmp 0x671869f4
mov word [esp + 0x164], dx
jmp 0x671869e9
mov word [esp + 0x164], si
mov dword [esp + 0x160], 1
movzx eax, word [ecx + 0x68]
mov edx, dword [edi + 0x28]
cmp edx, dword [ecx + 0x4c]
cmovae edx, dword [ecx + 0x4c]
lea esi, [eax*8 + 0x54]
mov eax, dword [edi + 0x2c]
cmp eax, dword [ecx + 0x50]
mov dword [esp + 0x6c], esi
cmovae eax, dword [ecx + 0x50]
mov dword [esp + 0xe4], eax
mov eax, dword [edi + 0x30]
mov edi, ecx
mov dword [esp + 0xe0], edx
cmp eax, dword [edi + 0x54]
cmovae eax, dword [edi + 0x54]
mov dword [esp + 0xe8], eax
cmp esi, 0x800
ja 0x67186a66
mov ecx, 0x5000
mov esi, dword [esp + 0xdc]
mov eax, ecx
mov dword [esp + 0xd4], esi
xor edx, edx
div dword [esp + 0x6c]
sub ecx, edx
mov dword [esp + 0xd0], ecx
jmp 0x67186ac1
imul ecx, esi, 0xa
mov eax, ecx
mov dword [esp + 0xd0], ecx
shr eax, 0xa
cmp eax, edx
jbe 0x67186a98
mov ecx, edx
shl ecx, 0xa
cmp esi, ecx
jbe 0x67186a89
push 0xffffffffffffffc1
jmp 0x6718757b
mov eax, ecx
xor edx, edx
div esi
sub ecx, edx
mov dword [esp + 0xd0], ecx
push dword [esp + 0xcc]
push ecx
call dword [esp + 0xcc]
mov esi, eax
mov dword [esp + 0xdc], esi
pop ecx
pop ecx
test esi, esi
je 0x67187571
mov ecx, dword [esp + 0xd0]
movzx eax, word [edi + 0x68]
add ecx, esi
shl eax, 3
push eax
mov eax, 0xff
mov dword [esp + 0xdc], ecx
push eax
lea eax, [esi + 0x54]
push eax
call fcn.671a4d9e
mov eax, dword [edi + 0xc]
add esp, 0xc
mov dword [esp + 0xfc], eax
lea esi, [eax + 0x100]
add eax, 0x340
test byte [edi + 0x48], 0x10
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], eax
je 0x67186b8c
test byte [edi + 0x48], 0x20
movzx eax, word [edi + 0x58]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
movzx edx, cx
mov dword [esp + 0x58], 1
movzx eax, ax
mov dword [esp + 0x38], edx
je 0x67186ba3
mov ecx, eax
mov eax, 0xff
mov edx, ecx
cmp word [esp + 0x28], ax
ja 0x67186b49
movzx eax, byte [ecx + esi]
mov dword [esp + 0x28], eax
push 0x7f
pop eax
and edx, eax
cmp dword [esp + 0x14], 0
je 0x67186ba3
cmp word [esp + 0x38], ax
jbe 0x67186ba3
shr ecx, 7
movzx eax, word [ecx*2 + 0x67392490]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x67396890]
imul eax, eax, 0xc
mov ax, word [eax + 0x6738f79c]
add ax, word [esp + 0x38]
movzx ecx, ax
mov dword [esp + 0x28], ecx
jmp 0x67186ba3
test dword [esp + 0x40], 0x200
jne 0x67186ba3
test byte [edi + 0x48], 0x40
je 0x67186ba3
lea eax, [edi + 0x14]
mov dword [esp + 0x48], eax
test byte [edi + 0x48], 0x80
je 0x67186c2d
test dword [edi + 0x48], 0x100
movzx eax, word [edi + 0x5c]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
movzx edx, cx
mov dword [esp + 0x60], 1
movzx eax, ax
mov dword [esp + 0x4c], edx
je 0x67186c2d
mov ecx, eax
mov eax, 0xff
mov edx, ecx
cmp word [esp + 0x2c], ax
ja 0x67186bec
movzx eax, byte [ecx + esi]
mov dword [esp + 0x2c], eax
push 0x7f
pop eax
and edx, eax
cmp dword [esp + 0x14], 0
je 0x67186c2d
cmp word [esp + 0x4c], ax
jbe 0x67186c2d
shr ecx, 7
movzx eax, word [ecx*2 + 0x67392490]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x67396890]
imul eax, eax, 0xc
mov ax, word [eax + 0x6738f79c]
add ax, word [esp + 0x4c]
movzx ecx, ax
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
xor eax, eax
and dword [esp + 0x3c], eax
and dword [esp + 0xf0], eax
mov dword [esp + 0x78], eax
test dword [ecx + 0x40], 0x10000
jne 0x671871ee
cmp dword [esp + 0x70], 0
je 0x67186d8c
mov esi, ebx
cmp ebx, edi
jae 0x67186d86
mov edx, dword [esp + 0x14]
test edx, edx
je 0x67186d13
mov eax, dword [esp + 0x15c]
mov edi, esi
mov ecx, dword [esp + 0x128]
test eax, eax
je 0x67186caa
cmp esi, ecx
jae 0x67186ce6
push edx
lea edx, [esp + 0x164]
push edx
push ecx
push eax
push esi
call fcn.671a0fec
add esp, 0x14
test eax, eax
jne 0x67186d86
jmp 0x67186ce2
mov edx, dword [esp + 0x160]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x67186ce2
mov ax, word [esi]
cmp ax, word [esp + 0x164]
jne 0x67186ce2
cmp edx, 1
je 0x67186d86
mov ax, word [esi + 2]
cmp ax, word [esp + 0x166]
je 0x67186d86
mov edx, dword [esp + 0x14]
add esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp esi, ecx
jae 0x67186d86
mov ax, word [esi]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x30]
cmovne esi, edi
add esi, dword [esp + 0x18]
cmp esi, ecx
jae 0x67186d86
jmp 0x67186c74
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x128]
test eax, eax
je 0x67186d43
cmp esi, ecx
jae 0x67186d7e
push edx
lea edx, [esp + 0x164]
push edx
push ecx
push eax
push esi
call fcn.671a0fec
add esp, 0x14
test eax, eax
jne 0x67186d86
jmp 0x67186d73
mov edx, dword [esp + 0x160]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x67186d73
mov ax, word [esi]
cmp ax, word [esp + 0x164]
jne 0x67186d73
cmp edx, 1
je 0x67186d86
mov ax, word [esi + 2]
cmp ax, word [esp + 0x166]
je 0x67186d86
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x15c]
add esi, dword [esp + 0x18]
cmp esi, edi
jb 0x67186d1a
mov edi, esi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x20]
test esi, esi
je 0x67186eb7
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x67186daa
cmp dword [esp + 0x48], ecx
je 0x67187126
cmp ebx, edi
sbb eax, eax
neg eax
cmp ebx, edi
jae 0x67186e04
movzx eax, word [ebx]
test ecx, ecx
je 0x67186dd5
mov ecx, dword [esp + 0x38]
cmp ax, cx
je 0x67187126
mov edx, dword [esp + 0x28]
cmp ax, dx
je 0x67187126
cmp dword [esp + 0x48], 0
je 0x67186e0c
mov ecx, 0xff
cmp ax, cx
push 0
cmova eax, ecx
movzx edx, ax
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [esp + 0x4c]
test byte [edx + ecx], al
pop eax
setne al
test eax, eax
jne 0x67187126
xor esi, esi
cmp dword [esp + 0x14], 0
je 0x67187445
mov ecx, dword [esp + 0x50]
cmp edi, ecx
je 0x67187445
test esi, esi
je 0x67186e32
cmp esi, 0xfffffffe
jne 0x67187445
lea esi, [ebp + 0x20]
lea ebx, [edi + 2]
cmp ebx, ecx
jae 0x67187443
mov edi, dword [esp + 0x18]
mov edx, 0xfc00
mov ax, word [ebx]
and ax, dx
cmp ax, word [esp + 0x30]
jne 0x67186e5c
add ebx, edi
cmp ebx, ecx
jb 0x67186e49
mov edi, dword [esp + 0x10]
cmp ebx, ecx
jae 0x67187443
mov eax, dword [esp + 0x34]
mov ecx, ebx
sub ecx, dword [esp + 0x24]
sar ecx, 1
push esi
sub eax, ecx
mov dword [esp + 0x128], ebx
push eax
push ebx
call fcn.671a22a1
add esp, 0xc
test eax, eax
je 0x67187425
mov ecx, dword [esp + 0x50]
jns 0x67186e35
mov eax, dword [esi]
lea edi, [ebx + eax*2]
mov dword [esp + 0x10], edi
mov dword [esp + 0x128], edi
cmp edi, ebx
jbe 0x67186e35
mov dword [esp + 0x5c], 3
jmp 0x67186c31
cmp dword [esp + 0x58], 0
je 0x67186f28
cmp ebx, edi
jae 0x67186f01
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
cmp si, dx
mov esi, dword [esp + 0x20]
je 0x67186eee
mov ecx, dword [esp + 0x38]
movzx eax, word [ebx]
cmp ax, cx
je 0x67186f01
cmp ax, dx
je 0x67186f01
add ebx, dword [esp + 0x18]
cmp ebx, edi
jb 0x67186ed7
jmp 0x67186f01
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
cmp word [ebx], ax
je 0x67186f01
add ebx, ecx
cmp ebx, edi
jb 0x67186ef6
cmp word [esp + 0x110], 0
mov edi, dword [esp + 0x128]
jne 0x6718712d
cmp ebx, edi
jb 0x6718712d
mov edi, dword [esp + 0x10]
jmp 0x67186e0c
test dword [esp + 0x40], 0x200
je 0x671870d9
mov esi, dword [esp + 0x120]
mov eax, dword [esp + 0x44]
lea eax, [esi + eax*2]
cmp ebx, eax
jbe 0x67187122
cmp ebx, edi
jae 0x67187097
mov edx, dword [esp + 0x14]
test edx, edx
je 0x67187015
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x15c]
mov edi, ebx
test eax, eax
je 0x67186f9e
cmp ebx, esi
jbe 0x67186fe8
push edx
lea ecx, [esp + 0x164]
push ecx
push esi
push eax
push ebx
call fcn.671a10a0
mov ecx, dword [esp + 0x24]
add esp, 0x14
test eax, eax
jne 0x6718709b
mov esi, dword [esp + 0x120]
jmp 0x67186fe4
mov eax, dword [esp + 0x160]
lea edx, [eax + eax]
lea eax, [esi + edx]
cmp ebx, eax
jb 0x67186fe4
mov ecx, ebx
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esp + 0x164]
jne 0x67186fe0
cmp dword [esp + 0x160], 1
je 0x67187097
mov ax, word [ecx + 2]
cmp ax, word [esp + 0x166]
je 0x67187097
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add ebx, dword [esp + 0x18]
cmp ebx, ecx
jae 0x6718709b
mov ax, word [ebx]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x30]
cmovne ebx, edi
add ebx, dword [esp + 0x18]
cmp ebx, ecx
jae 0x6718709b
jmp 0x67186f64
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x67187049
cmp ebx, esi
jbe 0x67187091
push edx
lea ecx, [esp + 0x164]
push ecx
push esi
push eax
push ebx
call fcn.671a10a0
add esp, 0x14
test eax, eax
jne 0x67187097
mov esi, dword [esp + 0x120]
jmp 0x67187082
mov edi, dword [esp + 0x160]
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ebx, eax
jb 0x671870d3
mov ecx, ebx
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esp + 0x164]
jne 0x6718707e
cmp edi, 1
je 0x67187097
mov ax, word [ecx + 2]
cmp ax, word [esp + 0x166]
je 0x67187097
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x15c]
add ebx, ecx
cmp ebx, edi
jb 0x67187020
mov ecx, dword [esp + 0x10]
push 0xd
pop eax
cmp word [ebx - 2], ax
jne 0x67187122
mov eax, dword [esp + 0x15c]
mov edx, dword [esp + 0x18]
cmp eax, 1
je 0x671870b8
cmp eax, edx
jne 0x67187122
cmp ebx, ecx
jae 0x67187122
mov edi, dword [esp + 0x128]
mov esi, dword [esp + 0x20]
push 0xa
pop eax
cmp word [ebx], ax
jne 0x6718712d
add ebx, edx
jmp 0x6718712d
mov edi, dword [esp + 0x10]
jmp 0x67187086
cmp dword [esp + 0x48], 0
je 0x67187126
cmp ebx, edi
jae 0x67186f01
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x18]
movzx edx, word [ebx]
mov eax, 0xff
cmp edx, eax
cmova edx, eax
xor eax, eax
mov ecx, edx
inc eax
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + esi], al
jne 0x67187115
add ebx, ebp
cmp ebx, edi
jb 0x671870f0
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x20]
jmp 0x67186f01
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x128]
cmp word [esp + 0x110], 0
mov dword [esp + 0x10], edi
jne 0x671871ea
mov eax, dword [esp + 0x1c]
mov edx, edi
sub edx, ebx
sar edx, 1
movzx eax, word [eax + 0x66]
cmp edx, eax
jl 0x67186e0c
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x58]
lea ecx, [ebx + eax*2]
je 0x671871ea
cmp ecx, dword [esp + 0x64]
jbe 0x671871ea
cmp edx, 0x7d0
jb 0x67187182
test esi, esi
jne 0x671871ea
cmp edx, 0x1e8480
jae 0x671871ea
cmp ecx, dword [esp + 0x128]
jae 0x67186e0c
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x4c]
cmp si, di
mov edi, dword [esp + 0x128]
je 0x671871c5
movzx eax, word [ecx]
mov esi, ecx
add ecx, 2
mov edx, eax
cmp ax, word [esp + 0x4c]
je 0x671871c1
cmp dx, word [esp + 0x2c]
je 0x671871c1
cmp ecx, edi
jb 0x671871a3
jmp 0x671871da
mov ecx, esi
jmp 0x671871da
movzx eax, word [ecx]
mov edx, ecx
add ecx, 2
cmp ax, si
je 0x671871d8
cmp ecx, edi
jb 0x671871c5
jmp 0x671871da
mov ecx, edx
cmp ecx, edi
mov edi, dword [esp + 0x10]
jae 0x67186e0c
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x68]
ja 0x67186e0c
or dword [esp + 0xc0], 1
mov eax, ebx
sub eax, dword [esp + 0x24]
sar eax, 1
and dword [esp + 0xec], 0
and dword [esp + 0x10c], 0
and dword [esp + 0x154], 0
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x5c]
or eax, dword [esp + 0x5190]
mov dword [esp + 0x14c], eax
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0x70]
movzx eax, word [ecx + 0x68]
push eax
movzx eax, word [ebp + 0x26]
push eax
lea eax, [ebp + 0x2c]
mov dword [esp + 0x140], ebx
push eax
push dword [esp + 0x130]
mov dword [esp + 0x14c], ebx
push ebx
call fcn.6717d404
add esp, 0x1c
mov esi, eax
cmp dword [esp + 0xf0], 0
je 0x67187293
cmp dword [esp + 0x3c], 0
jne 0x67187293
mov eax, dword [esp + 0x130]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x78], ebx
cmp esi, 0xfffffc1b
je 0x67186e0c
cmp esi, 0xfffffc1c
je 0x671872ed
cmp esi, 0xfffffc1d
je 0x671872e2
cmp esi, 0xfffffc1e
je 0x671872cc
cmp esi, 0xfffffc1f
je 0x671872ed
test esi, esi
je 0x671872ed
mov edi, dword [esp + 0x10]
jmp 0x67186e0e
mov eax, dword [esp + 0x154]
mov edi, ebx
mov dword [esp + 0x158], eax
mov edx, dword [esp + 0x14]
jmp 0x6718731c
mov edi, dword [esp + 0x144]
cmp edi, ebx
ja 0x671872dc
and dword [esp + 0x158], 0
lea edi, [ebx + 2]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x6718731c
cmp edi, dword [esp + 0x10]
jae 0x6718731c
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
cmp ax, word [esp + 0x30]
jne 0x6718731c
add edi, dword [esp + 0x18]
mov eax, dword [esp + 0x15c]
xor esi, esi
cmp dword [esp + 0x70], esi
je 0x67187361
test eax, eax
je 0x671873c5
mov ecx, dword [esp + 0x128]
cmp ebx, ecx
jae 0x67187361
push edx
lea edx, [esp + 0x164]
push edx
push ecx
push eax
push ebx
call fcn.671a0fec
add esp, 0x14
test eax, eax
jne 0x671872c3
mov eax, dword [esp + 0x15c]
mov edx, dword [esp + 0x160]
mov ebx, edi
cmp dword [esp + 0x20], esi
jne 0x671872c3
mov ecx, dword [esp + 0x10]
cmp edi, ecx
ja 0x671872c3
cmp edi, dword [esp + 0x80]
jbe 0x67187410
push 0xd
pop esi
cmp word [edi - 2], si
jne 0x67187410
cmp edi, ecx
jae 0x67187410
push 0xa
pop ecx
cmp word [edi], cx
mov ecx, dword [esp + 0x1c]
jne 0x67187414
test dword [ecx + 0x48], 0x800
jne 0x67187414
cmp eax, 1
je 0x671873c0
mov esi, dword [esp + 0x18]
cmp eax, esi
je 0x671873c0
cmp edx, esi
jne 0x67187414
lea ebx, [edi + 2]
jmp 0x67187414
mov edx, dword [esp + 0x160]
mov eax, dword [esp + 0x128]
lea ecx, [edx + edx]
sub eax, ecx
cmp ebx, eax
ja 0x67187404
mov ax, word [ebx]
cmp ax, word [esp + 0x164]
jne 0x67187404
cmp edx, 1
je 0x671872c3
mov ax, word [ebx + 2]
cmp ax, word [esp + 0x166]
je 0x671872c3
mov eax, dword [esp + 0x15c]
jmp 0x67187368
mov ecx, dword [esp + 0x1c]
and dword [esp + 0x138], 0
mov edi, dword [esp + 0x10]
jmp 0x67186c46
mov eax, dword [esp + 0x50]
mov edi, eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x128], eax
mov dword [esp + 0x5c], 1
jmp 0x67186c31
xor esi, esi
mov eax, dword [esp + 0xd4]
cmp eax, dword [esp + 0xdc]
je 0x67187466
push dword [esp + 0xcc]
push eax
call dword [esp + 0xd0]
pop ecx
pop ecx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x138]
mov dword [ebp + 0x14], eax
mov byte [ebp + 0x24], cl
cmp esi, 1
jne 0x67187521
movzx eax, word [ebp + 0x26]
add eax, eax
cmp dword [esp + 0x10c], eax
jge 0x671874a3
mov eax, dword [esp + 0x10c]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
inc ecx
mov edi, dword [esp + 0x24]
sub ebx, edi
mov eax, dword [esp + 0x130]
sub eax, edi
sar ebx, 1
sar eax, 1
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x12c]
cmp dword [esp + 0x134], eax
mov dword [ebp + 0x28], ecx
cmova eax, dword [esp + 0x134]
sub eax, edi
mov dword [ebp + 0x20], ebx
sar eax, 1
test dword [esp + 0x5190], 0x4000
mov dword [ebp + 0x1c], eax
je 0x6718751a
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x74]
push dword [ebp + 8]
lea esi, [esi + eax]
add esi, esi
push esi
call dword [ebp]
mov dword [ebp + 0x10], eax
pop ecx
pop ecx
test eax, eax
je 0x67187571
push esi
push edi
push eax
call fcn.671a4d7a
mov ecx, dword [ebp + 0x28]
add esp, 0xc
or byte [ebp + 0x25], 1
jmp 0x6718751d
mov dword [ebp + 0x10], edi
mov eax, ecx
jmp 0x6718757c
mov eax, dword [esp + 0x13c]
mov dword [ebp + 0x14], eax
test esi, esi
je 0x67187534
cmp esi, 0xfffffffe
jne 0x6718756a
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x67187567
mov eax, dword [esp + 0x24]
sub ecx, eax
sar ecx, 1
sub edi, eax
sar edi, 1
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x2c], ecx
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x20], ecx
mov ecx, dword [esp + 0x3c]
sub ecx, eax
mov dword [ebp + 0x1c], edi
sar ecx, 1
push 0xfffffffffffffffe
mov dword [ebp + 0x18], ecx
pop esi
jmp 0x6718756a
or esi, 0xffffffff
mov dword [ebp + 0x28], esi
mov eax, esi
jmp 0x6718757c
push 0xffffffffffffffd0
jmp 0x6718757b
push 0xffffffffffffffcd
jmp 0x6718757b
push 0xffffffffffffffde
pop eax
mov ecx, dword [esp + 0x5178]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.671a2e48
add esp, 0x516c
ret