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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x6db835
push eax
mov eax, 0x1480
mov dword fs:[0], esp
call fcn.006a72a0
push ebx
push ebp
mov ebp, ecx
push esi
xor ebx, ebx
push edi
lea ecx, [esp + 0x50]
mov dword [esp + 0x7c], ebx
call fcn.0061aaa0
lea ecx, [esp + 0x300]
mov dword [esp + 0x1498], ebx
call fcn.00660750
mov edi, dword [esp + 0x14a4]
mov byte [esp + 0x1498], 1
mov eax, dword [edi + 0x14]
cmp eax, 0xffffffff
je 0x67c46b
mov ecx, dword [ebp + 0xcc]
push ecx
push eax
lea ecx, [esp + 0x308]
call fcn.00660f10
mov ebx, eax
xor esi, esi
test ebx, ebx
jle 0x67c469
push esi
lea ecx, [esp + 0x304]
call fcn.00661050
mov edx, dword [ebp]
lea eax, [esp + 0x50]
lea ecx, [esp + 0x7c]
push eax
push ecx
lea eax, [esp + 0x1c4]
push 0
lea ecx, [esp + 0x30c]
push eax
push ecx
mov ecx, ebp
call dword [edx + 8]
cmp eax, 1
jne 0x67c4f5
inc esi
cmp esi, ebx
jl 0x67c42a
xor ebx, ebx
mov ecx, dword [esp + 0x14a0]
mov word [ebp + 0xf8], bx
mov dword [ebp + 0x130], ecx
mov ecx, dword [ebp + 0xcc]
mov word [ebp + 0xfa], bx
mov word [ebp + 0xfc], bx
mov dx, word [edi + 0x38]
push ecx
mov word [ebp + 0x134], dx
mov edx, dword [edi + 0x18]
mov eax, dword [edi + 0x3c]
push edx
lea ecx, [esp + 0x308]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x38], eax
call fcn.00660f10
cmp ax, bx
jg 0x67c574
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.0061ab90
xor eax, eax
jmp 0x67f11d
push 0
push 1
sub esp, 0x10
mov ecx, 0x72c070
mov edx, esp
mov dword [esp + 0x100], esp
push 1
push edx
call fcn.00644770
sub esp, 0x10
mov ecx, 0x72c070
mov eax, esp
mov dword [esp + 0xe4], esp
push 1
push eax
mov byte [esp + 0x14c8], 2
call fcn.00644770
mov ecx, 0x72bae0
mov byte [esp + 0x14c0], 1
call fcn.0061eec0
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.0061ab90
xor eax, eax
jmp 0x67f11d
movsx eax, ax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0xa0], eax
jle 0x67c63c
push edi
lea ecx, [esp + 0x304]
call fcn.00661050
lea ecx, [esp + 0x300]
call fcn.00661630
cmp eax, 8
lea ecx, [esp + 0x300]
jbe 0x67c5f3
call fcn.00661630
mov esi, eax
lea ecx, [esp + 0x300]
add word [ebp + 0xfa], si
call fcn.00661620
lea ecx, [eax + 8]
cmp esi, ebx
mov word [ebp + 0xfc], cx
jle 0x67c62c
mov dx, word [ebp + 0xf8]
mov eax, 1
shl eax, cl
or dx, ax
dec ecx
dec esi
jne 0x67c5dc
mov word [ebp + 0xf8], dx
jmp 0x67c62c
call fcn.00661630
mov esi, eax
lea ecx, [esp + 0x300]
add word [ebp + 0xfa], si
call fcn.00661620
cmp esi, ebx
mov word [ebp + 0xfc], ax
mov ecx, eax
jle 0x67c62c
mov edx, 1
shl edx, cl
or word [ebp + 0xf8], dx
dec ecx
dec esi
jne 0x67c61a
mov eax, dword [esp + 0xa0]
inc edi
cmp edi, eax
jl 0x67c588
cmp eax, ebx
mov dword [esp + 0x78], ebx
jle 0x67f0f0
mov esi, ebx
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x1bc]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea ecx, [esp + 0x50]
mov edi, 1
call fcn.0061b090
push esi
lea ecx, [esp + 0x304]
call fcn.00661050
test esi, esi
jne 0x67c6bf
lea ecx, [esp + 0x300]
call fcn.00661630
shr eax, 3
jne 0x67c6b9
mov cx, word [ebp + 0xfa]
test cx, cx
jbe 0x67c6b9
and ecx, 0xffff
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [ebp + 0x138], ecx
jmp 0x67c6bf
mov dword [ebp + 0x138], eax
lea ecx, [esp + 0x300]
call fcn.00661610
lea edx, [esp + 0xd4]
lea ebx, [ebp + 0xe4]
push edx
mov ecx, ebx
mov dword [esp + 0xd8], eax
call fcn.00681ec0
mov ecx, dword [ebx + 4]
mov dword [esp + 0x14], eax
cmp eax, ecx
je 0x67c706
mov edx, dword [esp + 0xd4]
mov esi, dword [eax + 0xc]
cmp edx, esi
jb 0x67c706
lea eax, [esp + 0x14]
jmp 0x67c714
mov dword [esp + 0xe8], ecx
lea eax, [esp + 0xe8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xe8]
cmp eax, ecx
mov dword [esp + 0x84], eax
je 0x67c729
xor edi, edi
mov esi, dword [esp + 0x30]
cmp esi, 0x29
jne 0x67c74a
cmp byte [ebp + 0xe0], 1
jbe 0x67c74a
cmp dword [ebp + 0x168], 1
je 0x67f0f0
jmp 0x67c767
test edi, edi
je 0x67cadf
cmp esi, 2
je 0x67c75c
cmp esi, 3
jne 0x67c767
mov dword [esp + 0x318], 0xff
mov eax, dword [esp + 0x14a4]
push 0
mov ecx, dword [eax + 0x4c]
push ecx
mov ecx, dword [ebp + 0xd4]
call fcn.0064fd60
lea edx, [esp + 0x50]
push 0
push edx
lea eax, [esp + 0x84]
push 3
push eax
push 0
lea ecx, [esp + 0x1d0]
push 0
lea edx, [esp + 0x318]
push ecx
mov ecx, dword [ebp + 0xd4]
push edx
call fcn.00653ef0
cmp eax, 1
jne 0x67cabd
lea ecx, [esp + 0x188]
call fcn.0061d780
lea ecx, [esp + 0x18c]
mov byte [esp + 0x1498], 3
call fcn.0061aaa0
push ecx
lea ecx, [esp + 0x54]
mov eax, esp
mov dword [esp + 0x18], esp
push eax
mov byte [esp + 0x14a0], 4
call fcn.0061afb0
lea ecx, [esp + 0x18c]
call fcn.0061dab0
mov cl, byte [esp + 0x50]
sub esp, 0x24
mov esi, esp
mov dword [esp + 0x38], esp
mov dword [esp + 0x38], esi
mov byte [esi], cl
mov ecx, dword [esp + 0x78]
test ecx, ecx
jne 0x67c81c
xor eax, eax
jmp 0x67c825
mov eax, dword [esp + 0x7c]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x67c82b
xor eax, eax
shl eax, 4
push eax
call fcn.006a6832
add esp, 4
mov dword [esi + 4], eax
mov edx, dword [esp + 0x7c]
mov ecx, esi
push eax
mov eax, dword [esp + 0x7c]
push edx
push eax
call fcn.00413b00
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0x84]
add esi, 0x10
push ecx
mov ecx, esi
mov byte [esp + 0x14c0], 5
call fcn.00413240
mov dl, byte [esp + 0x94]
lea ecx, [esp + 0x1b0]
mov byte [esi + 0x10], dl
mov byte [esp + 0x14bc], 4
call fcn.0061ac40
lea ecx, [esp + 0x300]
call fcn.00661610
lea ecx, [esp + 0x188]
mov dword [esp + 0x114], eax
lea eax, [esp + 0x118]
push ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x18], eax
call fcn.0061d790
mov al, byte [esp + 0x18c]
lea edx, [esp + 0x11c]
lea ecx, [esp + 0x18c]
mov byte [esp + 0x1498], 6
mov dword [esp + 0x20], edx
mov byte [esp + 0x11c], al
call fcn.00648110
test eax, eax
jge 0x67c8ef
xor eax, eax
shl eax, 4
push eax
call fcn.006a6832
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x194]
add esp, 4
mov dword [esp + 0x120], eax
push eax
push ecx
push edx
lea ecx, [esp + 0x128]
call fcn.00413b00
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
lea eax, [esp + 0x19c]
lea ecx, [esp + 0x12c]
push eax
mov byte [esp + 0x149c], 7
call fcn.004066c0
mov ecx, dword [esp + 0x114]
lea eax, [esp + 0x118]
mov dword [esp + 0x150], ecx
lea edx, [esp + 0x154]
push eax
lea ecx, [esp + 0x158]
mov byte [esp + 0x149c], 8
mov dword [esp + 0x18], edx
call fcn.0061d790
mov dl, byte [esp + 0x11c]
lea ecx, [esp + 0x158]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1498], 9
mov byte [esp + 0x158], dl
call fcn.00648110
test eax, eax
jge 0x67c9b1
xor eax, eax
shl eax, 4
push eax
call fcn.006a6832
mov ecx, dword [esp + 0x124]
add esp, 4
mov dword [esp + 0x15c], eax
push eax
mov eax, dword [esp + 0x128]
push eax
push ecx
lea ecx, [esp + 0x164]
call fcn.00413b00
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
lea edx, [esp + 0x12c]
lea ecx, [esp + 0x168]
push edx
mov byte [esp + 0x149c], 0xa
call fcn.004066c0
lea eax, [esp + 0x150]
lea ecx, [esp + 0x2f8]
push eax
push ecx
mov ecx, ebx
mov byte [esp + 0x14a0], 0xb
call fcn.00680f50
lea edx, [esp + 0x154]
mov dword [esp + 0x14], edx
lea ecx, [esp + 0x158]
mov byte [esp + 0x1498], 0xc
call fcn.0061ab90
lea ecx, [esp + 0x154]
mov byte [esp + 0x1498], 8
call fcn.0061d8c0
lea eax, [esp + 0x118]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1498], 0xd
call fcn.0061ab90
lea ecx, [esp + 0x118]
mov byte [esp + 0x1498], 4
call fcn.0061d8c0
lea ecx, [esp + 0x18c]
mov byte [esp + 0x1498], 0xe
call fcn.0061ab90
lea ecx, [esp + 0x188]
mov byte [esp + 0x1498], 1
call fcn.0061d8c0
jmp 0x67cbdc
or edi, 0xffffffff
cmp eax, edi
je case.0x67cbf7.13
cmp esi, 0x23
je case.0x67cbf7.13
cmp esi, 0x10
jne 0x67f195
jmp 0x67cbe3
lea ecx, [eax + 0x10]
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67cb1c
mov ecx, dword [esp + 0x84]
push esi
add ecx, 0x10
call fcn.0061daa0
mov edx, dword [esp + 0x84]
mov byte [esp + esi + 0x1bc], al
inc esi
lea ecx, [edx + 0x10]
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jl 0x67caee
mov ecx, dword [esp + 0x84]
add ecx, 0x10
call fcn.0061dc40
lea ecx, [esp + 0x84]
mov dword [esp + 0x7c], eax
call fcn.00680c80
mov esi, eax
sub esp, 0x24
add esi, 8
mov eax, esp
mov dword [esp + 0x38], esp
mov dword [esp + 0x38], eax
mov dl, byte [esi]
mov byte [eax], dl
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x67cb5c
xor eax, eax
jmp 0x67cb64
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 4
test eax, eax
jge 0x67cb6a
xor eax, eax
shl eax, 4
push eax
call fcn.006a6832
mov ecx, dword [esp + 0x3c]
add esp, 4
mov edi, eax
mov dword [ecx + 4], eax
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 4]
mov dword [esp + 0x44], ecx
cmp ebx, ecx
je 0x67cba5
push ebx
push edi
call fcn.00415140
mov eax, dword [esp + 0x4c]
add ebx, 0x10
add esp, 8
add edi, 0x10
cmp ebx, eax
jne 0x67cb8d
mov eax, dword [esp + 0x38]
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
add esi, 0x10
lea edi, [eax + 0x10]
push esi
mov ecx, edi
mov byte [esp + 0x14c0], 0xf
call fcn.00413240
mov dl, byte [esi + 0x10]
lea ecx, [esp + 0x74]
mov byte [edi + 0x10], dl
mov byte [esp + 0x14bc], 1
call fcn.0061ac40
mov esi, dword [esp + 0x30]
or edi, 0xffffffff
lea eax, [esi - 1]
cmp eax, 0x29
ja case.0x67cbf7.13
xor ecx, ecx
mov cl, byte [eax + 0x67f428]
jmp dword [ecx*4 + 0x67f3f4]
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x50]
push edx
call fcn.0061afb0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1498], 0x10
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67cc46
push esi
lea ecx, [esp + 0x30]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x2c]
inc esi
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jl 0x67cc24
lea ecx, [esp + 0x300]
call fcn.00661630
mov esi, eax
lea ecx, [esp + 0x300]
shr esi, 3
call fcn.00661630
test al, 7
jbe 0x67cc8c
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67cc8c
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea esi, [edx + ecx + 1]
test esi, esi
jle 0x67ce04
lea ecx, [esp + 0x300]
call fcn.0066a830
mov edi, eax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
je 0x67cd28
xor ebx, ebx
test eax, eax
jle 0x67ce04
cmp dword [esp + 0x30], 0x28
jne 0x67ccda
xor eax, eax
test esi, esi
jle 0x67ccd6
lea ecx, [esp + edi + 0x1bc]
cmp byte [ecx + eax], 0
jne 0x67ccda
inc eax
cmp eax, esi
jl 0x67cccb
add edi, esi
jmp 0x67cd18
push 0
push ebx
lea edx, [esp + edi + 0x1c4]
push esi
push edx
mov ecx, ebp
call fcn.0067bb90
mov ax, word [ebp + 0x134]
test ax, ax
je 0x67ce04
and eax, 0xffff
lea ecx, [esp + 0x2c]
add edi, eax
call fcn.0061dc40
movsx eax, ax
cmp edi, eax
jg 0x67ce04
mov eax, dword [ebp + 0x130]
inc ebx
cmp ebx, eax
jl 0x67ccb7
jmp 0x67ce04
cmp word [ebp + 0x134], 0
jne 0x67cd7f
mov eax, dword [esp + 0x30]
cmp eax, 0x28
jne 0x67cd5d
xor eax, eax
test esi, esi
jle 0x67cef5
lea ecx, [esp + edi + 0x1bc]
cmp byte [ecx], 0
jne 0x67cd66
inc eax
inc ecx
cmp eax, esi
jge 0x67cef5
jmp 0x67cd4c
cmp eax, 0x2a
je 0x67f138
push 0
push 0
lea ecx, [esp + edi + 0x1c4]
push esi
push ecx
mov ecx, ebp
call fcn.0067bb90
jmp 0x67ce04
lea ecx, [esp + 0x2c]
xor ebx, ebx
call fcn.0061dc40
movsx edx, ax
xor eax, eax
mov ax, word [ebp + 0x134]
add eax, edi
cmp eax, edx
jg 0x67ce04
mov eax, dword [esp + 0x30]
cmp eax, 0x28
jne 0x67cdc1
xor eax, eax
test esi, esi
jle 0x67cdbd
lea ecx, [esp + edi + 0x1bc]
cmp byte [ecx], 0
jne 0x67cdca
inc eax
inc ecx
cmp eax, esi
jl 0x67cdb2
add edi, esi
jmp 0x67cde9
cmp eax, 0x2a
je 0x67f082
push 0
push ebx
lea ecx, [esp + edi + 0x1c4]
push esi
push ecx
mov ecx, ebp
call fcn.0067bb90
xor edx, edx
mov dx, word [ebp + 0x134]
add edi, edx
inc ebx
lea ecx, [esp + 0x2c]
call fcn.0061dc40
xor ecx, ecx
mov cx, word [ebp + 0x134]
movsx eax, ax
add ecx, edi
cmp ecx, eax
jle 0x67cd9c
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x67ce1b
push eax
mov ecx, ebp
call fcn.0067b340
cmp dword [esp + 0x30], 0xb
jne 0x67cef5
lea ecx, [esp + 0x300]
call fcn.0066a830
mov cl, byte [esp + eax + 0x1bc]
test cl, cl
je 0x67cef5
lea ecx, [esp + 0x300]
call fcn.0066a830
cmp byte [esp + eax + 0x1bb], 0x28
je 0x67cef5
lea ecx, [esp + 0x300]
call fcn.0066a830
cmp byte [esp + eax + 0x1bb], 8
je 0x67cef5
lea ecx, [esp + 0x300]
call fcn.0066a830
mov cl, byte [esp + eax + 0x1bb]
test cl, cl
je 0x67cef5
lea ecx, [esp + 0x50]
call fcn.0061b090
lea eax, [esp + 0x50]
push 0
push eax
lea ecx, [esp + 0x84]
push 3
push ecx
mov ecx, dword [ebp + 0xd4]
push 0
lea edx, [esp + 0x1d0]
push 0
lea eax, [esp + 0x318]
push edx
push eax
call fcn.00653ef0
mov eax, dword [esp + 0xbc]
mov byte [esp + 0x1498], 1
inc eax
lea ecx, [esp + 0x2c]
cmp eax, 0xff
mov dword [esp + 0xbc], eax
jg 0x67f063
call fcn.0061d8c0
jmp case.0x67cbf7.1
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x2c]
jmp 0x67f063
mov ecx, dword [ebp + 0xd4]
call fcn.0064ef70
lea ecx, [esp + 0x300]
call fcn.00661630
shr eax, 3
mov dword [esp + 0x14], eax
jne 0x67cf4f
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67cf4f
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esp + 0x14], edx
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x1c], ebx
push 0
lea ecx, [esp + 0x54]
call fcn.0061b060
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x67cfd1
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x67cfd1
xor esi, esi
lea ecx, [esp + 0x50]
push esi
call fcn.0061b060
mov eax, dword [eax + 4]
lea ecx, [eax + edi*4]
call fcn.0061dc40
test ax, ax
jle 0x67cfce
push 0
lea ecx, [esp + 0x54]
call fcn.0061b060
mov eax, dword [eax + 4]
push esi
lea ecx, [eax + edi*4]
call fcn.0061daa0
mov byte [esp + ebx + 0x1bc], al
inc ebx
push 0
lea ecx, [esp + 0x54]
inc esi
call fcn.0061b060
mov eax, dword [eax + 4]
lea ecx, [eax + edi*4]
call fcn.0061dc40
movsx ecx, ax
cmp esi, ecx
jl 0x67cf91
inc edi
jmp 0x67cf57
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
test edi, edi
jle 0x67d213
lea ecx, [esp + 0x300]
call fcn.0066a830
mov esi, eax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
mov dword [esp + 0x20], esi
je 0x67d0cc
xor ebx, ebx
test eax, eax
jle 0x67d213
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jge 0x67d213
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x67d040
mov edx, ecx
lea esi, [esp + eax + 0x1bc]
lea edi, [esp + 0x2bc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
jne 0x67d050
cmp dword [esp + 0x30], 3
jne 0x67d050
dec eax
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x2bc]
cmp al, 0xff
jne 0x67d06b
cmp byte [esp + 0x2bd], 0xff
je 0x67d213
jmp 0x67d07e
test al, al
jne 0x67d07e
mov al, byte [esp + 0x2bd]
test al, al
je 0x67d213
push 0
lea ecx, [esp + 0x54]
call fcn.0061b060
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x2bc]
lea eax, [eax + ebx*4]
push eax
push ebx
push ecx
push edx
mov ecx, ebp
call fcn.0067bb90
mov edx, dword [esp + 0x20]
xor eax, eax
mov ax, word [ebp + 0x134]
add edx, eax
mov eax, dword [ebp + 0x130]
inc ebx
mov dword [esp + 0x20], edx
cmp ebx, eax
jl 0x67d00c
jmp 0x67d213
push 0
lea ecx, [esp + 0x54]
mov dword [esp + 0x28], 0
call fcn.0061b060
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x67d213
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 2
je 0x67d213
add esi, edi
cmp esi, ebx
jg 0x67d213
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x67d12a
mov eax, ecx
lea esi, [esp + ebx + 0x1bc]
lea edi, [esp + 0x2d0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x67d13a
cmp dword [esp + 0x30], 3
jne 0x67d13a
dec ebx
mov al, byte [esp + 0x2d0]
cmp al, 0xff
jne 0x67d155
cmp byte [esp + 0x2d1], 0xff
je 0x67d213
jmp 0x67d168
test al, al
jne 0x67d168
mov al, byte [esp + 0x2d1]
test al, al
je 0x67d213
push 0
lea ecx, [esp + 0x54]
call fcn.0061b060
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x2d0]
lea ecx, [eax + esi*4]
push ecx
push esi
push edi
push edx
mov ecx, ebp
call fcn.0067bb90
cmp word [ebp + 0x134], 0
jne 0x67d1d5
push 0
lea ecx, [esp + 0x54]
call fcn.0061b060
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x67d1bb
mov eax, dword [eax + 8]
sub eax, ecx
and al, 0xfc
cmp eax, 4
je 0x67d213
push 0
lea ecx, [esp + 0x54]
call fcn.0061b060
mov ecx, dword [eax + 4]
call fcn.0061dc40
mov word [ebp + 0x134], ax
xor ecx, ecx
push 0
mov cx, word [ebp + 0x134]
add ebx, ecx
lea ecx, [esp + 0x54]
call fcn.0061b060
mov ecx, dword [eax + 4]
call fcn.0061dc40
movsx ecx, ax
mov eax, ebx
cdq
idiv ecx
cmp eax, esi
jle 0x67d204
inc esi
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x1c]
lea edx, [ebx + edi]
cmp edx, eax
jle 0x67d106
mov eax, dword [esp + 0x14a4]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je case.0x67cbf7.13
push eax
mov ecx, ebp
call fcn.0067b340
jmp case.0x67cbf7.13
lea ecx, [esp + 0x300]
call fcn.0066a830
lea ecx, [esp + 0x80]
mov edi, eax
push ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x18], edi
call fcn.0061afb0
lea ecx, [esp + 0x80]
mov byte [esp + 0x1498], 0x11
xor ebx, ebx
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67d29b
push esi
lea ecx, [esp + 0x84]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x80]
inc esi
call fcn.0061dc40
movsx edx, ax
cmp esi, edx
jl 0x67d273
lea ecx, [esp + 0x300]
call fcn.00661630
shr eax, 3
mov dword [esp + 0x20], eax
jne 0x67d2d9
mov ax, word [ebp + 0xfa]
cmp ax, bx
jbe 0x67d2d9
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x30]
sub eax, 4
je 0x67d53c
dec eax
je 0x67d3f7
sub eax, 2
jne 0x67d623
mov eax, dword [esp + 0x20]
cmp eax, ebx
jle 0x67d623
cmp dword [ebp + 0x130], 0xffffffff
je 0x67d381
cmp eax, ebx
mov dword [esp + 0x1c], ebx
jle 0x67d623
lea edi, [esp + edi + 0x1bc]
mov edx, dword [esp + 0x1c]
xor ebx, ebx
mov al, byte [edi + edx]
mov byte [esp + 0x13], al
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x67d365
mov al, byte [esp + 0x14]
mov cl, byte [esp + 0x1c]
add al, cl
push 0
push 0
lea ecx, [esp + 0x184]
push 2
push ecx
mov ecx, ebp
mov byte [esp + 0x18c], al
mov byte [esp + 0x18d], bl
call fcn.0067bb90
inc ebx
cmp ebx, 8
jl 0x67d32b
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x67d31e
jmp 0x67d623
cmp eax, ebx
mov dword [esp + 0x24], ebx
jle 0x67d623
lea edi, [esp + edi + 0x1bc]
mov edx, dword [esp + 0x24]
xor ebx, ebx
mov al, byte [edi + edx]
mov byte [esp + 0x13], al
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x67d3db
mov al, byte [esp + 0x24]
mov cl, byte [esp + 0x14]
add al, cl
push 0
push 0
lea ecx, [esp + 0x1b8]
push 2
push ecx
mov ecx, ebp
mov byte [esp + 0x1c0], al
mov byte [esp + 0x1c1], bl
call fcn.0067bb90
inc ebx
cmp ebx, 8
jl 0x67d3a1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x67d394
jmp 0x67d623
mov eax, dword [esp + 0x20]
cmp eax, ebx
jle 0x67d623
cmp dword [ebp + 0x130], 0xffffffff
je 0x67d4a8
cmp eax, ebx
mov dword [esp + 0x1c], ebx
jle 0x67d623
lea esi, [esp + 0x1bc]
jmp 0x67d429
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
lea eax, [edi + edx]
mov cl, byte [eax + esi]
and eax, 0x80000001
mov byte [esp + 0x13], cl
jns 0x67d443
dec eax
or eax, 0xfffffffe
inc eax
jne 0x67d482
xor ebx, ebx
mov dl, byte [esp + 0x13]
mov cl, bl
shr dl, cl
test dl, 1
je 0x67d47a
mov al, byte [esp + 0x14]
mov dl, byte [esp + 0x1c]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x23]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x2b], al
call fcn.0067bb90
inc ebx
cmp ebx, 8
jl 0x67d447
jmp 0x67d492
push 0
push 0
push 0x9901
mov ecx, ebp
call fcn.0067b400
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x67d425
jmp 0x67d623
cmp eax, ebx
mov dword [esp + 0x24], ebx
jle 0x67d623
lea edi, [esp + 0x1bc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
add eax, ecx
mov dl, byte [eax + edi]
and eax, 0x80000001
mov byte [esp + 0x1b], dl
jns 0x67d4d8
dec eax
or eax, 0xfffffffe
inc eax
jne 0x67d516
xor ebx, ebx
mov al, byte [esp + 0x1b]
mov cl, bl
shr al, cl
test al, 1
je 0x67d50e
mov al, byte [esp + 0x24]
mov dl, byte [esp + 0x14]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.0067bb90
inc ebx
cmp ebx, 8
jl 0x67d4dc
jmp 0x67d526
push 0
push 0
push 0x9901
mov ecx, ebp
call fcn.0067b400
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x67d4bb
jmp 0x67d623
mov eax, dword [esp + 0x20]
cmp eax, ebx
jle 0x67d623
cmp dword [ebp + 0x130], 0xffffffff
je 0x67d5bd
cmp eax, ebx
mov dword [esp + 0x1c], ebx
jle 0x67d623
lea edi, [esp + edi + 0x1bc]
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov cl, byte [edi + eax]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x67d5a4
mov al, byte [esp + 0x14]
mov dl, byte [esp + 0x1c]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.0067bb90
inc ebx
cmp ebx, 8
jl 0x67d571
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x67d564
jmp 0x67d623
cmp eax, ebx
mov dword [esp + 0x24], ebx
jle 0x67d623
lea edi, [esp + edi + 0x1bc]
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov cl, byte [edi + eax]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x67d60c
mov al, byte [esp + 0x24]
mov dl, byte [esp + 0x14]
add al, dl
mov cl, 0xa
imul cl
push 0
push 0
lea edx, [esp + 0x1b]
add al, bl
push 1
push edx
mov ecx, ebp
mov byte [esp + 0x23], al
call fcn.0067bb90
inc ebx
cmp ebx, 8
jl 0x67d5d9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x67d5cc
mov eax, dword [esp + 0x14a4]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x67d63a
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x80]
jmp 0x67f063
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x54]
call fcn.0061afb0
lea ecx, [esp + 0x88]
mov byte [esp + 0x1498], 0x12
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67d6a2
push esi
lea ecx, [esp + 0x8c]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x88]
inc esi
call fcn.0061dc40
movsx edx, ax
cmp esi, edx
jl 0x67d67a
lea ecx, [esp + 0x300]
call fcn.00661630
shr eax, 3
mov dword [esp + 0x14], eax
jne 0x67d6e4
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67d89c
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
mov dword [esp + 0x14], eax
test eax, eax
jle 0x67d89c
lea ecx, [esp + 0x300]
call fcn.0066a830
mov cl, byte [esp + 0x2b]
mov dword [esp + 0x20], eax
mov byte [esp + 0xd8], cl
mov edi, 0x72ba88
or ecx, 0xffffffff
xor eax, eax
xor esi, esi
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xe0], esi
mov ebx, ecx
lea ecx, [esp + 0xdc]
push ebx
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], esi
call fcn.00414230
test al, al
je 0x67d772
mov edi, dword [esp + 0xdc]
mov ecx, ebx
mov edx, ecx
mov esi, 0x72ba88
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], ebx
xor esi, esi
mov byte [eax + ebx], 0
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, esi
jle 0x67d855
mov ecx, dword [esp + 0x20]
lea edx, [esp + ecx + 0x1bc]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
xor esi, esi
xor ebx, ebx
mov cl, byte [eax + edi]
mov byte [esp + 0x1b], cl
mov dl, byte [esp + 0x1b]
mov cl, bl
shr dl, cl
test dl, 1
je 0x67d83e
mov al, byte [esp + 0x2b]
mov dword [esp + 0xf0], esi
mov byte [esp + 0xec], al
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
lea ecx, [esp + 0xec]
mov byte [esp + 0x1498], 0x14
push ecx
lea ecx, [esp + 0x304]
call fcn.006614c0
mov edx, dword [esp + 0xf0]
mov cl, bl
inc cl
push esi
mov al, byte [edx]
push esi
lea edx, [esp + 0x2ec]
mov byte [esp + 0x2ed], cl
push 2
push edx
mov ecx, ebp
mov byte [esp + 0x2f4], al
call fcn.0067bb90
mov eax, dword [esp + 0xf0]
push eax
call fcn.006a64d0
add esp, 4
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
inc ebx
cmp ebx, 8
jl 0x67d79e
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x67d78f
mov eax, dword [esp + 0xdc]
xor esi, esi
cmp eax, esi
mov byte [esp + 0x1498], 0x12
je 0x67d887
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x67d87e
cmp al, 0xff
je 0x67d87e
dec al
mov byte [ecx], al
jmp 0x67d887
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], esi
mov ecx, dword [esp + 0x14a4]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x67d8b3
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x88]
jmp 0x67f063
cmp dword [ebp + 0x130], edi
je 0x67f1a2
mov byte [esp + 0xb4], 1
lea edx, [esp + 0x40]
lea ecx, [esp + 0x50]
push edx
call fcn.0061afb0
lea ecx, [esp + 0x40]
mov byte [esp + 0x1498], 0x15
call fcn.0061dc40
test ax, ax
jle 0x67d9d0
lea ecx, [esp + 0x40]
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67d935
push esi
lea ecx, [esp + 0x44]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x40]
inc esi
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jl 0x67d913
lea ecx, [esp + 0x300]
call fcn.00661630
mov ebx, eax
shr ebx, 3
jne 0x67d96d
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67d9d0
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea ebx, [edx + ecx + 1]
test ebx, ebx
jle 0x67d9d0
lea ecx, [esp + 0x300]
call fcn.0066a830
mov esi, eax
mov eax, dword [ebp + 0x130]
test eax, eax
jle 0x67d9d0
xor edi, edi
test eax, eax
jle 0x67d9d0
push 0
push edi
lea edx, [esp + esi + 0x1c4]
push ebx
push edx
mov ecx, ebp
call fcn.0067bb90
mov ax, word [ebp + 0x134]
test ax, ax
je 0x67d9d0
and eax, 0xffff
lea ecx, [esp + 0x40]
add esi, eax
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jg 0x67d9d0
mov eax, dword [ebp + 0x130]
inc edi
cmp edi, eax
jl 0x67d98f
mov ecx, dword [esp + 0xb4]
mov eax, dword [ebp + 0x130]
and ecx, 0xff
cmp ecx, eax
jge 0x67db17
mov dl, byte [esp + 0x2b]
xor esi, esi
mov byte [esp + 0x8c], dl
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x300]
push eax
mov byte [esp + 0x149c], 0x16
call fcn.006614c0
mov ecx, dword [esp + 0x90]
cmp ecx, esi
jne 0x67da38
xor eax, eax
jmp 0x67da41
mov eax, dword [esp + 0x94]
sub eax, ecx
mov bl, byte [ecx + eax - 1]
inc bl
mov byte [ecx + eax - 1], bl
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x304]
call fcn.006612f0
mov cl, byte [esp + 0xb4]
lea edx, [esp + 0x50]
push esi
inc cl
push edx
lea eax, [esp + 0x84]
push 3
mov byte [esp + 0xc0], cl
push eax
push esi
lea ecx, [esp + 0x1d0]
push esi
lea edx, [esp + 0x318]
push ecx
mov ecx, dword [ebp + 0xd4]
push edx
call fcn.00653ef0
cmp eax, 1
je 0x67dadc
cmp eax, 0xffffffff
jne 0x67f1cd
mov eax, dword [esp + 0x90]
mov byte [esp + 0x1498], 0x15
push eax
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
jmp 0x67d9d0
mov ecx, dword [esp + 0x90]
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov byte [esp + 0x1498], 1
call fcn.0061d8c0
jmp 0x67d8db
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x67db2e
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x40]
jmp 0x67f063
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
push eax
call fcn.0061afb0
xor ebx, ebx
lea ecx, [esp + 0x34]
mov byte [esp + 0x1498], 0x17
mov dword [esp + 0x24], ebx
call fcn.0061dc40
test ax, ax
jle 0x67db8f
push ebx
lea ecx, [esp + 0x38]
call fcn.0061daa0
mov byte [esp + ebx + 0x1bc], al
lea ecx, [esp + 0x34]
inc ebx
call fcn.0061dc40
movsx ecx, ax
cmp ebx, ecx
jl 0x67db69
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x300]
call fcn.00661630
mov edi, eax
shr edi, 3
mov dword [esp + 0x14], edi
jne 0x67dbd3
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67e62b
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 1]
mov dword [esp + 0x14], edi
test edi, edi
jle 0x67e62b
lea ecx, [esp + 0x300]
call fcn.0066a830
mov ecx, eax
mov eax, esi
sub eax, 0x14
mov dword [esp + 0x1c], ecx
je 0x67e2e3
dec eax
je 0x67df80
dec eax
jne 0x67e62b
mov eax, dword [0x72dce8]
test eax, eax
jne 0x67ddbd
mov dl, 0x10
cmp ecx, ebx
mov dword [0x72dce8], 1
mov byte [esp + 0x13], dl
jge 0x67e62b
jmp 0x67dc31
mov edi, dword [esp + 0x14]
cmp edi, 2
jne 0x67dc4f
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x67dc61
cmp edi, 1
jne 0x67f23f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
jne 0x67dc92
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x67e62b
mov edx, dword [ebp + 0x3c]
sub edx, eax
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x67e62b
jmp 0x67dd93
movzx si, dl
sub dl, 0x10
push 0
and edx, 0xff
mov ecx, ebp
push edx
push esi
call fcn.0067b400
and esi, 0xffff
lea ecx, [esp + 0xac]
push esi
push 0x71350c
push ecx
call fcn.006a6fa5
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x67dcd1
xor edx, edx
jmp 0x67dce7
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xac]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x67dd15
call fcn.006a64db
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x67dd3a
mov al, byte [ecx - 1]
test al, al
je 0x67dd3a
cmp al, 0xff
je 0x67dd3a
test ebx, ebx
jne 0x67dd5e
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.004138c0
jmp 0x67dd8f
test ebx, ebx
jne 0x67dd49
push 1
mov ecx, esi
call fcn.004138c0
jmp 0x67dd8f
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x67dd55
cmp eax, ebx
jae 0x67dd66
push 1
mov ecx, esi
call fcn.004138c0
push ebx
mov ecx, esi
call fcn.00414a60
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xac]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x134]
inc dl
add ecx, eax
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov byte [esp + 0x13], dl
mov dword [esp + 0x1c], ecx
jl 0x67dc2d
jmp 0x67e62b
cmp eax, 1
jne 0x67e62b
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x67e62b
mov edx, dword [ebp + 0x3c]
sub edx, eax
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x67e62b
xor dl, dl
mov dword [0x72dce8], 0
mov byte [esp + 0x9c], dl
jmp 0x67de0a
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp ecx, ebx
jge 0x67e62b
cmp edi, 2
jne 0x67de30
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x67de42
cmp edi, 1
jne 0x67f23f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
je 0x67df53
mov ecx, dword [esp + 0x9c]
add dl, 0x20
movzx si, dl
and ecx, 0xff
push 0
push ecx
push esi
mov ecx, ebp
call fcn.0067b400
and esi, 0xffff
lea edx, [esp + 0x10c]
push esi
push 0x71350c
push edx
call fcn.006a6fa5
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x67de91
xor edx, edx
jmp 0x67dea7
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0x10c]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x67ded5
call fcn.006a64db
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x67defa
mov al, byte [ecx - 1]
test al, al
je 0x67defa
cmp al, 0xff
je 0x67defa
test ebx, ebx
jne 0x67df1e
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.004138c0
jmp 0x67df4f
test ebx, ebx
jne 0x67df09
push 1
mov ecx, esi
call fcn.004138c0
jmp 0x67df4f
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x67df15
cmp eax, ebx
jae 0x67df26
push 1
mov ecx, esi
call fcn.004138c0
push ebx
mov ecx, esi
call fcn.00414a60
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x10c]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0x9c]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
inc dl
cmp dl, 0xff
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x9c], dl
jb 0x67de02
jmp 0x67e62b
mov eax, dword [0x72dce8]
test eax, eax
jne 0x67e146
xor dl, dl
mov dword [0x72dce8], 1
mov byte [esp + 0x13], dl
mov byte [esp + 0xb0], dl
jmp 0x67dfb2
mov ebx, dword [esp + 0x24]
mov dl, byte [esp + 0x13]
mov edi, dword [esp + 0x14]
cmp ecx, ebx
jge 0x67e62b
cmp edi, 2
jne 0x67dfd8
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x67dfea
cmp edi, 1
jne 0x67f23f
movzx ax, byte [esp + ecx + 0x1bc]
cmp ax, 1
jbe 0x67e107
test dl, dl
jne 0x67e002
cmp ax, 0x10
sbb esi, esi
neg esi
jmp 0x67e006
movzx si, dl
mov ecx, dword [esp + 0xb0]
push 0
and ecx, 0xff
push ecx
push esi
mov ecx, ebp
call fcn.0067b400
and esi, 0xffff
lea edx, [esp + 0xd0]
push esi
push 0x71350c
push edx
call fcn.006a6fa5
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x67e045
xor edx, edx
jmp 0x67e05b
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xd0]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x67e089
call fcn.006a64db
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x67e0ae
mov al, byte [ecx - 1]
test al, al
je 0x67e0ae
cmp al, 0xff
je 0x67e0ae
test ebx, ebx
jne 0x67e0d2
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.004138c0
jmp 0x67e103
test ebx, ebx
jne 0x67e0bd
push 1
mov ecx, esi
call fcn.004138c0
jmp 0x67e103
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x67e0c9
cmp eax, ebx
jae 0x67e0da
push 1
mov ecx, esi
call fcn.004138c0
push ebx
mov ecx, esi
call fcn.00414a60
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xd0]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov al, byte [esp + 0x13]
test al, al
jne 0x67e116
mov byte [esp + 0x13], 2
jmp 0x67e11a
inc byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
mov al, byte [esp + 0xb0]
inc al
mov dword [esp + 0x1c], ecx
cmp al, 8
mov byte [esp + 0xb0], al
jb 0x67dfa6
jmp 0x67e62b
cmp eax, 1
jne 0x67e62b
xor dl, dl
mov dword [0x72dce8], 0
mov byte [esp + 0xc0], dl
jmp 0x67e16c
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp ecx, ebx
jge 0x67e62b
cmp edi, 2
jne 0x67e192
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x67e1a4
cmp edi, 1
jne 0x67f23f
movzx ax, byte [esp + ecx + 0x1bc]
cmp ax, 1
jbe 0x67e2b6
mov ecx, dword [esp + 0xc0]
add dl, 9
movzx si, dl
and ecx, 0xff
push 0
push ecx
push esi
mov ecx, ebp
call fcn.0067b400
and esi, 0xffff
lea edx, [esp + 0x104]
push esi
push 0x71350c
push edx
call fcn.006a6fa5
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x67e1f4
xor edx, edx
jmp 0x67e20a
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0x104]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x67e238
call fcn.006a64db
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x67e25d
mov al, byte [ecx - 1]
test al, al
je 0x67e25d
cmp al, 0xff
je 0x67e25d
test ebx, ebx
jne 0x67e281
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.004138c0
jmp 0x67e2b2
test ebx, ebx
jne 0x67e26c
push 1
mov ecx, esi
call fcn.004138c0
jmp 0x67e2b2
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x67e278
cmp eax, ebx
jae 0x67e289
push 1
mov ecx, esi
call fcn.004138c0
push ebx
mov ecx, esi
call fcn.00414a60
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x104]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0xc0]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
inc dl
cmp dl, 8
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xc0], dl
jb 0x67e164
jmp 0x67e62b
mov eax, dword [0x72dce8]
test eax, eax
jne 0x67e494
mov dl, 1
mov dword [0x72dce8], 1
mov byte [esp + 0x13], dl
mov byte [esp + 0xb8], al
jmp 0x67e311
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp ecx, ebx
jge 0x67e62b
cmp edi, 2
jne 0x67e337
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x67e349
cmp edi, 1
jne 0x67f23f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
je 0x67e45e
cmp dl, 9
movzx si, dl
jne 0x67e35d
xor esi, esi
mov ecx, dword [esp + 0xb8]
push 0
and ecx, 0xff
push ecx
push esi
mov ecx, ebp
call fcn.0067b400
and esi, 0xffff
lea edx, [esp + 0xcc]
push esi
push 0x71350c
push edx
call fcn.006a6fa5
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x67e39c
xor edx, edx
jmp 0x67e3b2
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xcc]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x67e3e0
call fcn.006a64db
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x67e405
mov al, byte [ecx - 1]
test al, al
je 0x67e405
cmp al, 0xff
je 0x67e405
test ebx, ebx
jne 0x67e429
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call fcn.004138c0
jmp 0x67e45a
test ebx, ebx
jne 0x67e414
push 1
mov ecx, esi
call fcn.004138c0
jmp 0x67e45a
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x67e420
cmp eax, ebx
jae 0x67e431
push 1
mov ecx, esi
call fcn.004138c0
push ebx
mov ecx, esi
call fcn.00414a60
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xcc]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0x13]
xor eax, eax
mov ax, word [ebp + 0x134]
inc dl
add ecx, eax
mov al, byte [esp + 0xb8]
inc al
mov byte [esp + 0x13], dl
cmp al, 9
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xb8], al
jb 0x67e309
jmp 0x67e62b
cmp eax, 1
jne 0x67e62b
xor dl, dl
mov dword [0x72dce8], 0
mov byte [esp + 0xa4], dl
jmp 0x67e4ba
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp ecx, ebx
jge 0x67e62b
cmp edi, 2
jne 0x67e4e0
movzx ax, byte [esp + ecx + 0x1bc]
movzx si, byte [esp + ecx + 0x1bd]
shl eax, 8
add eax, esi
jmp 0x67e4f2
cmp edi, 1
jne 0x67f23f
movzx ax, byte [esp + ecx + 0x1bc]
test ax, ax
je 0x67e603
mov ecx, dword [esp + 0xa4]
add dl, 9
movzx si, dl
and ecx, 0xff
push 0
push ecx
push esi
mov ecx, ebp
call fcn.0067b400
and esi, 0xffff
lea edx, [esp + 0xfc]
push esi
push 0x71350c
push edx
call fcn.006a6fa5
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x67e541
xor edx, edx
jmp 0x67e557
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx + edx*8]
lea edi, [esp + 0xfc]
xor eax, eax
mov ebx, dword [ebp + 0x38]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [ebx + edx*4 - 0x4c]
mov esi, ecx
cmp esi, 0xfffffffd
mov dword [esp + 0x20], esi
jbe 0x67e585
call fcn.006a64db
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x67e5aa
mov al, byte [ecx - 1]
test al, al
je 0x67e5aa
cmp al, 0xff
je 0x67e5aa
test esi, esi
jne 0x67e5ce
dec al
push esi
mov byte [ecx - 1], al
mov ecx, ebx
call fcn.004138c0
jmp 0x67e5ff
test esi, esi
jne 0x67e5b9
push 1
mov ecx, ebx
call fcn.004138c0
jmp 0x67e5ff
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x67e5c5
cmp eax, esi
jae 0x67e5d6
push 1
mov ecx, ebx
call fcn.004138c0
push esi
mov ecx, ebx
call fcn.00414a60
mov eax, dword [esp + 0x20]
mov edi, dword [ebx + 4]
mov ecx, eax
lea esi, [esp + 0xfc]
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]
mov dword [ebx + 8], eax
mov ebx, dword [ebx + 4]
add ebx, eax
mov byte [ebx], 0
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0xa4]
xor eax, eax
mov ax, word [ebp + 0x134]
add ecx, eax
inc dl
cmp dl, 6
mov dword [esp + 0x1c], ecx
mov byte [esp + 0xa4], dl
jb 0x67e4b2
mov ecx, dword [esp + 0x14a4]
mov eax, dword [ecx + 0x20]
cmp eax, 0xffffffff
je 0x67e642
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x34]
jmp 0x67f063
lea edx, [esp + 0x74]
lea ecx, [esp + 0x50]
push edx
call fcn.0061afb0
xor ebx, ebx
lea ecx, [esp + 0x74]
mov byte [esp + 0x1498], 0x18
mov dword [esp + 0x24], ebx
call fcn.0061dc40
test ax, ax
jle 0x67e6a3
push ebx
lea ecx, [esp + 0x78]
call fcn.0061daa0
mov byte [esp + ebx + 0x1bc], al
lea ecx, [esp + 0x74]
inc ebx
call fcn.0061dc40
movsx eax, ax
cmp ebx, eax
jl 0x67e67d
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x300]
call fcn.00661630
shr eax, 3
jne 0x67e6dd
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67f27f
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea eax, [edx + ecx + 1]
cmp eax, 2
jne 0x67f27f
lea ecx, [esp + 0x300]
call fcn.0066a830
mov edi, eax
mov dword [esp + 0x20], 0
cmp edi, ebx
mov dword [esp + 0x14], edi
jge 0x67e8d4
mov al, byte [esp + edi + 0x1bc]
lea esi, [esp + edi + 0x1bc]
cmp al, 0x40
jbe 0x67e83b
cmp al, 0xa0
je 0x67e73c
and eax, 0xff
sub eax, 0x40
and eax, 0x8000001f
jns 0x67e736
dec eax
or eax, 0xffffffe0
inc eax
je 0x67e83b
mov edx, dword [esp + 0x20]
push 0
push edx
push 1
push esi
mov ecx, ebp
call fcn.0067bb90
xor eax, eax
lea ecx, [esp + 0xc4]
mov al, byte [esi]
push eax
push 0x71350c
push ecx
call fcn.006a6fa5
mov eax, dword [ebp + 0x38]
add esp, 0xc
test eax, eax
jne 0x67e772
xor edx, edx
jmp 0x67e788
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x38]
lea ecx, [edx + edx*8]
lea edi, [esp + 0xc4]
lea edx, [edx + ecx*2]
or ecx, 0xffffffff
lea esi, [eax + edx*4 - 0x4c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], esi
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x67e7b6
call fcn.006a64db
mov edx, dword [esi + 4]
xor ecx, ecx
cmp edx, ecx
je 0x67e7de
mov al, byte [edx - 1]
test al, al
je 0x67e7de
cmp al, 0xff
je 0x67e7de
cmp ebx, ecx
jne 0x67e802
dec al
mov byte [edx - 1], al
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
jmp 0x67e833
cmp ebx, ecx
jne 0x67e7ed
push 1
mov ecx, esi
call fcn.004138c0
jmp 0x67e833
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x67e7f9
cmp eax, ebx
jae 0x67e80a
push 1
mov ecx, esi
call fcn.004138c0
push ebx
mov ecx, esi
call fcn.00414a60
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xc4]
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov dword [eax + 8], ebx
add ebx, ecx
mov byte [ebx], 0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov al, byte [esp + edi + 0x1bd]
lea esi, [esp + edi + 0x1bd]
cmp al, 0x40
jbe 0x67e8b4
cmp al, 0xa0
je 0x67e867
and eax, 0xff
sub eax, 0x40
and eax, 0x8000001f
jns 0x67e865
dec eax
or eax, 0xffffffe0
inc eax
je 0x67e8b4
mov eax, dword [esp + 0x20]
push 0
push eax
push 1
push esi
mov ecx, ebp
call fcn.0067bb90
xor ecx, ecx
lea edx, [esp + 0xc4]
mov cl, byte [esi]
push ecx
push 0x71350c
push edx
call fcn.006a6fa5
add esp, 0xc
lea esi, [ebp + 0x34]
lea eax, [esp + 0xc4]
mov ecx, esi
push eax
call fcn.00680c30
dec eax
mov ecx, esi
push eax
call fcn.00680c60
mov ecx, eax
call fcn.004cfae0
xor ecx, ecx
mov cx, word [ebp + 0x134]
add edi, ecx
mov ecx, dword [esp + 0x20]
inc ecx
cmp edi, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], ecx
jl 0x67e708
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x74]
jmp 0x67f063
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x50]
push edx
call fcn.0061afb0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1498], 0x19
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67e92d
push esi
lea ecx, [esp + 0x50]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x4c]
inc esi
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jl 0x67e90b
lea ecx, [esp + 0x300]
call fcn.00661630
mov ebx, eax
shr ebx, 3
mov dword [esp + 0x14], ebx
jne 0x67e973
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67ea80
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esp + 0x14], edx
mov ebx, edx
test ebx, ebx
jle 0x67ea80
lea ecx, [esp + 0x300]
call fcn.0066a830
cmp word [ebp + 0x134], 0
mov esi, eax
jne 0x67e9f0
test ebx, ebx
jle 0x67ea80
mov edi, ebx
mov al, byte [esp + esi + 0x1bc]
test al, al
je 0x67e9e7
xor ebx, ebx
mov al, byte [esp + esi + 0x1bc]
mov cl, bl
shr al, cl
test al, 1
je 0x67e9e1
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp ecx, 0x1f
jne 0x67e9c9
lea eax, [ebx + esi*8]
jmp 0x67e9d5
cmp ecx, 0x1e
jne 0x67e9d5
mov eax, esi
shl eax, 8
add eax, ebx
push 0
push 0
push eax
mov ecx, ebp
call fcn.0067b400
inc ebx
cmp ebx, 8
jl 0x67e9aa
inc esi
dec edi
jne 0x67e99d
jmp 0x67ea80
lea ecx, [esp + 0x4c]
xor edi, edi
call fcn.0061dc40
movsx ecx, ax
cmp esi, ecx
jge 0x67ea80
test ebx, ebx
jle 0x67ea64
mov dword [esp + 0x20], ebx
mov al, byte [esp + esi + 0x1bc]
test al, al
je 0x67ea58
xor ebx, ebx
mov dl, byte [esp + esi + 0x1bc]
mov cl, bl
shr dl, cl
test dl, 1
je 0x67ea4e
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp ecx, 0x1f
jne 0x67ea37
lea eax, [ebx + esi*8]
jmp 0x67ea43
cmp ecx, 0x1e
jne 0x67ea43
mov eax, esi
shl eax, 8
add eax, ebx
push 0
push edi
push eax
mov ecx, ebp
call fcn.0067b400
inc ebx
cmp ebx, 8
jl 0x67ea17
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
inc esi
dec eax
mov dword [esp + 0x20], eax
jne 0x67ea0a
xor eax, eax
lea ecx, [esp + 0x4c]
mov ax, word [ebp + 0x134]
add esi, eax
inc edi
call fcn.0061dc40
movsx ecx, ax
cmp esi, ecx
jl 0x67ea02
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x67ea97
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x4c]
jmp 0x67f063
lea eax, [esp + 0x38]
lea ecx, [esp + 0x50]
push eax
mov dword [ebp + 0x15c], 1
call fcn.0061afb0
lea ecx, [esp + 0x38]
mov byte [esp + 0x1498], 0x1a
call fcn.0061dc40
test ax, ax
jle 0x67f3af
lea ecx, [esp + 0x38]
call fcn.0061dc40
lea ecx, [esp + 0x38]
xor esi, esi
movsx ebx, ax
call fcn.0061dc40
test ax, ax
jle 0x67eb18
push esi
lea ecx, [esp + 0x3c]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x38]
inc esi
call fcn.0061dc40
movsx ecx, ax
cmp esi, ecx
jl 0x67eaf6
lea ecx, [esp + 0x300]
call fcn.00661630
mov edi, eax
shr edi, 3
jne 0x67eb54
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67f398
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 1]
test edi, edi
jle 0x67f398
lea ecx, [esp + 0x300]
call fcn.0066a830
mov esi, eax
lea ecx, [esi + edi]
cmp ecx, ebx
jle 0x67f2bf
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x38]
jmp 0x67f063
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x50]
push edx
call fcn.0061afb0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1498], 0x1b
call fcn.0061dc40
test ax, ax
jle 0x67f3c0
lea ecx, [esp + 0x3c]
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67ebe0
push esi
lea ecx, [esp + 0x40]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x3c]
inc esi
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jl 0x67ebbe
lea ecx, [esp + 0x300]
call fcn.00661630
mov edi, eax
shr edi, 3
jne 0x67ec1c
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67ecef
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edi, [edx + ecx + 1]
test edi, edi
jle 0x67ecef
lea ecx, [esp + 0x300]
call fcn.0066a830
mov esi, eax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
je 0x67ec8e
xor ebx, ebx
test eax, eax
jle 0x67ecef
push 0
push ebx
lea edx, [esp + esi + 0x1c4]
push edi
push edx
mov ecx, ebp
call fcn.0067bb90
mov ax, word [ebp + 0x134]
test ax, ax
je 0x67ecef
and eax, 0xffff
lea ecx, [esp + 0x3c]
add esi, eax
call fcn.0061dc40
movsx eax, ax
cmp esi, eax
jg 0x67ecef
mov eax, dword [ebp + 0x130]
inc ebx
cmp ebx, eax
jl 0x67ec47
jmp 0x67ecef
cmp word [ebp + 0x134], 0
jne 0x67ecae
push 0
push 0
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.0067bb90
jmp 0x67ecef
lea ecx, [esp + 0x3c]
xor ebx, ebx
call fcn.0061dc40
movsx edx, ax
cmp esi, edx
jge 0x67ecef
push 0
push ebx
lea eax, [esp + esi + 0x1c4]
push edi
push eax
mov ecx, ebp
call fcn.0067bb90
xor ecx, ecx
mov cx, word [ebp + 0x134]
add esi, ecx
lea ecx, [esp + 0x3c]
inc ebx
call fcn.0061dc40
movsx edx, ax
cmp esi, edx
jl 0x67ecc0
mov eax, dword [esp + 0x14a4]
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x67ed06
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x3c]
jmp 0x67f063
lea ecx, [esp + 0x300]
call fcn.0066a830
lea ecx, [esp + 0x44]
mov dword [esp + 0x14], eax
push ecx
lea ecx, [esp + 0x54]
call fcn.0061afb0
lea ecx, [esp + 0x44]
mov byte [esp + 0x1498], 0x1c
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67ed6f
push esi
lea ecx, [esp + 0x48]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x44]
inc esi
call fcn.0061dc40
movsx edx, ax
cmp esi, edx
jl 0x67ed4d
lea ecx, [esp + 0x300]
call fcn.00661630
mov esi, eax
shr esi, 3
jne 0x67edab
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67eed8
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea esi, [edx + eax + 1]
test esi, esi
jle 0x67eed8
mov ecx, dword [ebp + 0xd4]
call fcn.0067f470
mov ecx, dword [ebp + 0xd4]
call fcn.0067f470
mov bl, al
lea ecx, [esp + 0x44]
and ebx, 0xff
call fcn.0061dc40
movsx ecx, ax
mov eax, dword [esp + 0x14]
sub ecx, ebx
dec ecx
cmp eax, ecx
jle 0x67edf9
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x44]
jmp 0x67f063
xor ebx, ebx
test esi, esi
jle 0x67eed8
lea edi, [esp + eax + 0x1bc]
mov dl, byte [edi + ebx]
xor cl, cl
mov byte [esp + 0x1b], dl
mov byte [esp + 0x13], cl
mov al, byte [esp + 0x1b]
shr al, cl
test al, 1
je 0x67eec0
lea ecx, [esp + 0xab]
push ecx
lea ecx, [esp + 0x144]
call fcn.00437610
lea edx, [esp + 0x140]
lea ecx, [esp + 0x300]
push edx
mov byte [esp + 0x149c], 0x1d
call fcn.006614c0
mov al, byte [esp + 0x14]
lea ecx, [esp + 0x2b]
add al, bl
push ecx
lea ecx, [esp + 0x144]
mov byte [esp + 0x2f], al
call fcn.00680ab0
lea edx, [esp + 0x13]
lea ecx, [esp + 0x140]
push edx
call fcn.00680ab0
push 0
push 0
lea ecx, [esp + 0x148]
call fcn.0065bc60
push eax
push 0
lea ecx, [esp + 0x150]
call fcn.0065bc70
push eax
mov ecx, ebp
call fcn.0067bb90
lea ecx, [esp + 0x140]
mov byte [esp + 0x1498], 0x1c
call fcn.00677600
mov cl, byte [esp + 0x13]
inc cl
cmp cl, 8
mov byte [esp + 0x13], cl
jb 0x67ee17
inc ebx
cmp ebx, esi
jl 0x67ee0a
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x44]
jmp 0x67f063
mov eax, dword [ebp + 0x168]
test eax, eax
jne 0x67ef07
mov eax, dword [ebp + 0x130]
cmp eax, edi
je 0x67f1a2
mov dword [ebp + 0x168], eax
cmp dword [ebp + 0x164], edi
jne 0x67ef21
mov eax, dword [ebp + 0x168]
cmp eax, 1
jle 0x67ef21
dec eax
mov dword [ebp + 0x164], eax
lea eax, [esp + 0x48]
lea ecx, [esp + 0x50]
push eax
call fcn.0061afb0
lea ecx, [esp + 0x48]
mov byte [esp + 0x1498], 0x1e
call fcn.0061dc40
test ax, ax
jle 0x67f057
lea ecx, [esp + 0x48]
xor esi, esi
call fcn.0061dc40
test ax, ax
jle 0x67ef7b
push esi
lea ecx, [esp + 0x4c]
call fcn.0061daa0
mov byte [esp + esi + 0x1bc], al
lea ecx, [esp + 0x48]
inc esi
call fcn.0061dc40
movsx ecx, ax
cmp esi, ecx
jl 0x67ef59
lea ecx, [esp + 0x300]
call fcn.00661630
mov ebx, eax
shr ebx, 3
jne 0x67efb7
mov ax, word [ebp + 0xfa]
test ax, ax
jbe 0x67f057
and eax, 0xffff
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ebx, [edx + eax + 1]
test ebx, ebx
jle 0x67f057
lea ecx, [esp + 0x300]
call fcn.0066a830
mov esi, eax
mov eax, dword [ebp + 0x168]
test eax, eax
jle 0x67f040
xor edi, edi
test eax, eax
jle 0x67f01e
push 0
push edi
lea ecx, [esp + esi + 0x1c4]
push ebx
push ecx
mov ecx, ebp
call fcn.0067bb90
mov ax, word [ebp + 0x134]
test ax, ax
je 0x67f013
and eax, 0xffff
lea ecx, [esp + 0x48]
add esi, eax
call fcn.0061dc40
movsx edx, ax
cmp esi, edx
jg 0x67f01e
mov eax, dword [ebp + 0x168]
inc edi
cmp edi, eax
jl 0x67efdd
mov eax, dword [ebp + 0x164]
test eax, eax
jle 0x67f040
mov ecx, dword [ebp + 0x168]
sub ecx, 2
cmp eax, ecx
jg 0x67f039
dec dword [esp + 0x78]
dec eax
mov dword [ebp + 0x164], eax
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x67f057
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x48]
call fcn.0061d8c0
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xa0]
inc esi
cmp esi, eax
mov dword [esp + 0x78], esi
jl 0x67c64a
jmp 0x67f0f0
lea ecx, [esp + 0x2c]
call fcn.0061dc40
movsx eax, ax
lea ecx, [edi + 1]
cmp ecx, eax
jge 0x67f0df
mov cl, byte [esp + edi + 0x1bc]
lea eax, [esp + edi + 0x1bc]
cmp cl, 0x92
jne 0x67f0b3
mov cl, byte [esp + edi + 0x1bd]
test cl, cl
je 0x67f0c1
push 0
push 0
push 2
push eax
mov ecx, ebp
call fcn.0067bb90
xor edx, edx
lea ecx, [esp + 0x2c]
mov dx, word [ebp + 0x134]
add edi, edx
call fcn.0061dc40
movsx eax, ax
lea ecx, [edi + 1]
cmp ecx, eax
jl 0x67f095
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x2c]
call fcn.0061d8c0
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
mov dword [esp + 0x1498], 0xffffffff
lea ecx, [esp + 0x50]
call fcn.0061ab90
mov eax, 1
mov ecx, dword [esp + 0x1490]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x148c
ret 0xc
lea ecx, [esp + 0x2c]
call fcn.0061dc40
movsx edx, ax
lea eax, [edi + 1]
cmp eax, edx
jge 0x67f0df
mov esi, 1
lea ecx, [esp + 0x1bc]
lea edi, [esp + edi + 0x1bc]
sub esi, ecx
cmp byte [edi], 0x92
jne 0x67f16c
mov al, byte [edi + 1]
test al, al
je 0x67f17a
push 0
push 0
push 2
push edi
mov ecx, ebp
call fcn.0067bb90
lea ecx, [esp + 0x2c]
add edi, 2
call fcn.0061dc40
movsx edx, ax
lea eax, [esi + edi]
cmp eax, edx
jl 0x67f160
jmp 0x67f0df
mov ecx, dword [esp + 0x14a8]
mov dword [ecx], 1
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], edi
call fcn.0061ab90
xor eax, eax
jmp 0x67f11d
mov edx, dword [esp + 0x14a8]
mov eax, dword [esp + 0x90]
push eax
mov dword [edx], 1
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov byte [esp + 0x1498], 1
call fcn.0061d8c0
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.0061ab90
xor eax, eax
jmp 0x67f11d
lea ecx, [esp + 0x34]
mov byte [esp + 0x1498], 1
call fcn.0061d8c0
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.0061ab90
xor eax, eax
jmp 0x67f11d
lea ecx, [esp + 0x74]
mov byte [esp + 0x1498], 1
call fcn.0061d8c0
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
lea ecx, [esp + 0x50]
mov dword [esp + 0x1498], 0xffffffff
call fcn.0061ab90
xor eax, eax
jmp 0x67f11d
lea ecx, [esp + 0x300]
call fcn.0067f460
mov word [ebp + 0x160], ax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
je 0x67f331
xor ebx, ebx
test eax, eax
jle 0x67f398
push 0
push ebx
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.0067bb90
mov ax, word [ebp + 0x134]
test ax, ax
je 0x67f398
and eax, 0xffff
lea ecx, [esp + 0x38]
add esi, eax
call fcn.0061dc40
movsx edx, ax
lea eax, [esi + edi]
cmp eax, edx
jg 0x67f398
mov eax, dword [ebp + 0x130]
inc ebx
cmp ebx, eax
jl 0x67f2e7
jmp 0x67f398
cmp word [ebp + 0x134], 0
jne 0x67f351
push 0
push 0
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.0067bb90
jmp 0x67f398
lea ecx, [esp + 0x38]
xor ebx, ebx
call fcn.0061dc40
movsx edx, ax
lea eax, [esi + edi]
cmp eax, edx
jge 0x67f398
push 0
push ebx
lea ecx, [esp + esi + 0x1c4]
push edi
push ecx
mov ecx, ebp
call fcn.0067bb90
xor edx, edx
lea ecx, [esp + 0x38]
mov dx, word [ebp + 0x134]
add esi, edx
inc ebx
call fcn.0061dc40
movsx eax, ax
lea ecx, [esi + edi]
cmp ecx, eax
jl 0x67f366
mov edx, dword [esp + 0x14a4]
mov eax, dword [edx + 0x20]
cmp eax, 0xffffffff
je 0x67f3af
push eax
mov ecx, ebp
call fcn.0067b340
mov byte [esp + 0x1498], 1
lea ecx, [esp + 0x38]
jmp 0x67f0eb
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1498], 1
call fcn.0061d8c0
lea ecx, [esp + 0x300]
mov byte [esp + 0x1498], 0
call fcn.00660860
mov dword [esp + 0x1498], edi
jmp 0x67f10f