Function at 0x3002b5be
Capabilities:
Authenticate hmac
Encrypt data using speck
Parse credit card information
Parse pe header

Disassembly:
test byte [ebp + 0x1020], 1
je 0x30065d84
jmp 0x3002b6c3
push ebp
mov eax, 0x1084
lea ebp, [esp - 0x1004]
call fcn.3002ea85
mov eax, dword [section..cdata]
mov dword [ebp + 0x1000], eax
mov eax, dword [ebp + 0x1010]
push ebx
mov ebx, dword [ebp + 0x100c]
push esi
xor esi, esi
lea eax, [ebx + eax*2]
push edi
mov edi, eax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x1014]
cmp eax, 0x400
mov dword [ebp + 8], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 8], esi
mov dword [ebp + 0x1c], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x44], esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 4], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x18], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x48], esi
mov dword [ebp + 4], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x38], esi
mov dword [ebp + 0x2c], edi
mov dword [ebp], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [0x301df314], esi
jg 0x3002b736
cmp dword [ebp + 0x1018], esi
mov eax, dword [ebp + 0x1028]
mov dword [eax], esi
mov dword [eax + 0x3c], esi
jne 0x30065d1f
cmp dword [ebp + 0x1014], 0x80000100
jne 0x30037306
xor ecx, ecx
inc ecx
or dword [eax + 0x64], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], esi
mov dword [ebp - 0x20], ebx
call fcn.3000fd7a
cmp eax, 0xffffffff
mov dword [ebp + 0x100c], eax
je 0x30068591
cmp eax, esi
je 0x30028bb5
cmp eax, 1
jne 0x30028bb5
cmp dword [ebp + 0x101c], 0x7fff
je 0x300685c2
mov eax, dword [ebp + 0x101c]
cdq
idiv dword [0x301df130]
push 0xb
push eax
call fcn.30055f82
mov dword [ebp + 0x24], eax
sub edi, dword [ebp - 0x20]
push dword [ebp + 0x24]
sar edi, 1
push edi
push dword [ebp - 0x20]
mov dword [ebp + 0x1028], edi
call fcn.3002b917
mov edi, eax
sub edi, ebx
sar edi, 1
lea eax, [edi + edi]
sub eax, dword [ebp - 0x20]
add eax, ebx
sar eax, 1
cmp dword [ebp + 0x24], eax
jl 0x300685ce
test byte [0x301e4ced], 1
jne 0x300685e8
movzx eax, word [ebx]
cmp eax, 0x2d
je 0x300685f9
mov eax, edi
mov ecx, dword [ebp + 0x1000]
pop edi
pop esi
pop ebx
call fcn.30056b36
add ebp, 0x1004
leave
ret 0x20
mov eax, dword [ebp + 0x1014]
jmp 0x3002b736
mov esi, dword [ebp + 0x1018]
mov eax, dword [ebp + 0x1014]
and dword [ebp + 0x10], 0
cmp eax, 0x80000100
lea edi, [ebp + 0xff0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x30065d8b
mov eax, dword [ebp + 0x1028]
and dword [eax + 0x20], 0
call fcn.3000fd7a
mov esi, eax
inc esi
cmp byte [ebp + 0xffe], 0
mov dword [ebp - 0x28], esi
jne 0x30065d72
cmp byte [ebp + 0xfff], 0
jne 0x30065d72
test esi, esi
jne 0x30065dbb
call fcn.300293e2
jmp 0x30065dbb
lea eax, [ebp + 0xff0]
push eax
call fcn.3010140c
mov esi, eax
test esi, esi
jge 0x30065d6b
xor eax, eax
jmp 0x3002b736
test byte [ebp + 0xffc], 8
je 0x3002b736
push 3
pop esi
push 0x401
lea ecx, [ebp + 0x7d0]
push ecx
push eax
push dword [ebp + 0x100c]
mov dword [ebp - 0x28], esi
call fcn.30007ae4
call fcn.3001a5b7
test byte [ebp + 0x1020], 1
jne 0x30065de6
cmp dword [ebp - 0x28], 1
jne 0x30065de6
mov al, byte [ebp + 0xff9]
cmp al, byte [ebp + 0xffa]
jne 0x30065de6
mov al, byte [ebp + 0xff5]
cmp al, byte [ebp + 0xff6]
je 0x30065d84
movzx eax, byte [ebp + esi + 0xff4]
add eax, dword [ebp + 0xff0]
movzx ecx, byte [ebp + esi + 0xff8]
mov ebx, dword [ebp + 0x100c]
add ecx, eax
xor edx, edx
cmp dword [ebp - 0x28], edx
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x80], ecx
jne 0x30065e2b
test byte [ebp + 0xffc], 1
je 0x30065e2b
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
mov word [ebx], 0x2d
add ebx, 2
cmp eax, ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x2c], edx
mov word [0x301e60e8], dx
mov dword [ebp - 0x20], edx
jae 0x300688c7
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
mov eax, dword [ebp + 0x28]
movzx esi, byte [eax]
and dword [ebp + 0x24], 0
inc dword [ebp + 0x28]
lea eax, [esi - 1]
cmp eax, 0x5e
mov dword [ebp + 0x20], esi
ja case.0x30065e74.50
movzx ecx, byte [eax + 0x300689b4]
mov eax, dword [0x301dd944]
jmp dword [ecx*4 + 0x300688ec]
cmp dword [ebp - 0x14], 0
jne case.0x30065e74.50
mov dword [ebp - 0x34], 2
jmp case.0x30065e74.50
cmp dword [ebp - 0x14], 0
jne case.0x30065e74.50
mov dword [ebp - 0x34], 1
jmp case.0x30065e74.50
mov dword [ebp - 0x24], 1
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x10]
test ax, ax
jle 0x30065ec9
dec dword [ebp + 0x28]
mov dword [ebp + 0x14], eax
movsx eax, ax
jmp 0x300663de
mov ax, word [0x301de040]
mov dword [ebp - 0x48], 1
jmp 0x300675e2
mov eax, dword [ebp + 0x1028]
xor ecx, ecx
inc ecx
or dword [eax + 0x64], ecx
test byte [ebp + 0x1017], 0x80
mov dword [eax + 0x1c], ecx
je 0x30065f08
mov dword [ebp - 0x2c], ebx
jmp case.0x30065e74.50
test byte [ebp + 0x1017], 0x80
jne case.0x30065e74.50
mov ecx, dword [ebp + 0x1014]
add ecx, ecx
lea eax, [ecx + ebx]
cmp eax, dword [ebp + 0x2c]
ja 0x3006682e
mov edx, ecx
shr ecx, 2
lea esi, [ebp + 0x7d0]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x30067606
mov eax, dword [ebp + 0x1028]
and dword [eax + 0x20], 0
mov esi, dword [ebp + 0x28]
movzx eax, byte [esi]
mov dword [ebp + 0x30], eax
add eax, eax
inc esi
lea edx, [eax + ebx]
cmp edx, dword [ebp + 0x2c]
mov dword [ebp + 0x28], esi
ja 0x3006682e
mov edi, ebx
mov ecx, eax
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
add dword [ebp + 0x28], eax
rep movsb byte es:[edi], byte [esi]
mov ebx, edx
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1028]
and dword [eax + 0x20], 0
mov eax, dword [ebp + 0x28]
mov ax, word [eax]
mov word [ebx], ax
inc ebx
inc ebx
add dword [ebp + 0x28], 2
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1028]
mov ecx, dword [ebp + 0x28]
mov dword [eax + 0x24], 1
movzx ecx, byte [ecx]
mov dword [eax + 4], ecx
inc dword [ebp + 0x28]
jmp case.0x30065e74.50
push dword [ebp + 8]
mov ecx, dword [ebp + 0x28]
movzx ecx, byte [ecx]
push dword [ebp - 0x68]
xor eax, eax
inc eax
inc dword [ebp + 0x28]
push ecx
push eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x5c], ecx
mov dword [0x301df314], eax
call fcn.3010098a
mov dword [ebp + 0x1c], eax
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1028]
xor ecx, ecx
inc ecx
or dword [eax + 0x64], ecx
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp + 0x28]
movzx ecx, byte [eax]
inc eax
mov dword [ebp + 0x18], ecx
movsx ecx, byte [eax]
inc eax
movsx esi, byte [eax]
inc eax
cmp dword [ebp + 0x1014], 0x80000100
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x28], eax
jne 0x3006604a
mov eax, dword [ebp + 0x1024]
test eax, eax
je 0x30066022
mov esi, eax
mov dword [ebp + 0x30], eax
test esi, esi
jl 0x3006602f
cmp esi, 0xf
jg 0x3006602f
mov eax, esi
jmp 0x30066032
push 0xf
pop eax
push eax
lea eax, [ebp + 0x7d0]
push eax
call fcn.3002b8fc
mov dword [ebp - 0x70], eax
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x6e]
jmp 0x3006604f
xor eax, eax
mov dword [ebp + 0x10], eax
mov edi, dword [ebp + 0x30]
sub esi, edi
add dword [ebp + 0x10], esi
movsx ecx, word [ebp + 0x10]
movsx edx, ax
add ecx, edi
cmp ecx, edx
mov dword [ebp + 0x14], eax
jge 0x30066084
push ecx
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
push 0x401
lea eax, [ebp + 0x7d0]
push eax
call fcn.30100b83
mov eax, dword [ebp + 0x14]
xor ecx, ecx
cmp ax, cx
jne 0x300660a2
cmp dword [ebp - 0x28], ecx
jne 0x3006609d
test byte [ebp + 0xffc], 1
jne 0x30065d1f
mov dword [ebp + 0x10], ecx
jmp 0x300660b4
movsx edx, word [ebp + 0x10]
movsx esi, ax
add edx, edi
cmp edx, esi
jge 0x300660b4
mov eax, dword [ebp + 0x10]
add eax, edi
movsx eax, ax
lea edx, [ebp + 0x7d0]
lea eax, [ebp + eax*2 + 0x7d0]
mov dword [ebp], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp + 4], ecx
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x28]
movzx ax, byte [eax]
mov ecx, dword [ebp]
inc dword [ebp + 0x28]
lea edx, [ebp + 0x7d0]
sub ecx, edx
sar ecx, 1
mov edx, 0x401
mov dword [ebp + 0x14], eax
movsx eax, ax
sub edx, ecx
cmp edx, eax
mov dword [ebp + 0x18], eax
jb 0x3006682e
mov edi, eax
add edi, edi
push edi
push dword [ebp]
push dword [ebp + 0x28]
call fcn.30056427
add dword [ebp + 0x28], edi
mov esi, dword [ebp - 0x4c]
neg esi
sbb esi, esi
and esi, 0x1d
add esi, 9
mov dword [ebp + 0x20], esi
jmp 0x3006616d
test byte [ebp + 0x1020], 2
mov dword [ebp - 0x4c], 1
je case.0x30065e74.9
mov eax, dword [ebp + 0x1028]
cmp dword [eax + 0x3c], 0
jne case.0x30065e74.9
mov dword [eax + 0x3c], 1
push 0x20
add eax, 0x40
push eax
push 0
call fcn.30056452
mov eax, dword [ebp + 0x28]
movzx ax, byte [eax]
inc dword [ebp + 0x28]
mov esi, dword [ebp + 0x20]
mov word [ebp + 0x14], ax
cmp dword [ebp + 4], 3
jne 0x30066187
cmp esi, 0xb
push 2
pop eax
mov dword [ebp + 4], eax
jne 0x30066207
sub dword [ebp - 0x10], eax
jmp 0x3006618d
cmp dword [ebp + 4], 4
jne 0x300661ef
cmp dword [ebp - 0x4c], 0
jne 0x30066198
mov ebx, dword [ebp - 0x10]
jmp 0x300661e8
test byte [ebp + 0x1020], 2
je 0x300661d6
mov edi, ebx
sub edi, dword [ebp - 0x10]
sar edi, 1
je 0x300661e8
mov esi, dword [ebp - 0x10]
sub esi, dword [ebp + 0x100c]
sar esi, 1
dec edi
lea eax, [edi + esi]
push eax
push dword [ebp + 0x1028]
call fcn.30100ae9
test eax, eax
je 0x3006682e
test edi, edi
jne 0x300661b5
mov esi, dword [ebp + 0x20]
jmp 0x300661e8
mov eax, ebx
sub eax, dword [ebp - 0x10]
sar eax, 1
push eax
push dword [ebp - 0x10]
push 0x20
call fcn.3000e1b7
mov dword [ebp + 4], 2
cmp dword [ebp + 4], 2
jne 0x30066207
cmp esi, 0xb
jne 0x30066207
cmp dword [ebp - 0x38], 0
jne 0x30066207
mov dword [ebp - 0x38], 1
xor ecx, ecx
cmp dword [ebp - 0x48], ecx
jne 0x30066527
cmp dword [ebp + 4], 1
jne 0x30066221
cmp esi, 0x26
je 0x30066527
movsx eax, word [ebp + 0x10]
cmp dword [ebp + 0x18], eax
jle 0x300663d5
mov ecx, dword [ebp + 0x18]
sub ecx, eax
movsx eax, word [ebp + 0x14]
push ecx
push eax
call fcn.30055f82
sub dword [ebp + 0x14], eax
cmp esi, 9
mov dword [ebp + 0x30], eax
jne 0x300662a7
sub dword [ebp + 0x18], eax
jne 0x300663e1
cmp dword [ebp + 4], 5
jne 0x300663e1
cmp dword [ebp - 0x38], 0
jne 0x3006629b
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
test byte [0x301e4ceb], 0x10
je 0x30066288
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
and eax, 0xe20
add eax, 0x30
mov word [ebx], ax
jmp 0x3006628d
mov word [ebx], 0x30
inc ebx
inc ebx
mov dword [ebp + 4], 3
jmp 0x300663e1
mov dword [ebp + 4], 4
jmp 0x300663e1
test eax, eax
je 0x300663d0
mov edi, ebx
sub edi, dword [ebp + 0x100c]
dec dword [ebp + 0x30]
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
dec dword [ebp + 0x18]
mov eax, edi
sar eax, 1
cmp dword [ebp + 0x1c], 0
mov dword [ebp + 0x24], eax
je 0x300662df
push dword [ebp + 0x1c]
push 0x30
call fcn.30101562
jmp 0x300662f7
test byte [0x301e4ceb], 0x10
je 0x300662fc
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
and eax, 0xe20
add eax, 0x30
mov word [ebx], ax
jmp 0x30066301
mov word [ebx], 0x30
inc ebx
inc ebx
inc edi
inc edi
cmp dword [ebp + 0x18], 0
jne 0x30066325
cmp dword [ebp + 4], 5
jne 0x30066325
cmp dword [ebp - 0x38], 0
je 0x3006636c
cmp esi, 0x26
jne 0x3006636c
mov dword [ebp + 4], 4
jmp 0x3006632a
cmp esi, 0x26
jne 0x3006636c
test byte [ebp + 0x1020], 2
jne 0x30066356
cmp dword [ebp - 0x40], 0
je 0x3006634e
sub ebx, 4
sub edi, 4
mov word [ebx], 0x20
inc ebx
inc ebx
inc edi
inc edi
and word [ebx], 0
jmp 0x3006636c
mov word [ebx - 2], 0x20
jmp 0x3006636c
push dword [ebp + 0x24]
push dword [ebp + 0x1028]
call fcn.30100ae9
test eax, eax
je 0x3006682e
cmp dword [ebp - 0x24], 0
je 0x300663c6
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x300663c6
push 3
cdq
pop ecx
idiv ecx
test edx, edx
jne 0x300663c6
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
cmp esi, 0x26
mov ax, word [0x301de042]
mov word [ebx], ax
jne 0x300663c2
test byte [ebp + 0x1020], 2
jne 0x300663aa
mov word [ebx], 0x20
jmp 0x300663c2
mov eax, edi
sar eax, 1
push eax
push dword [ebp + 0x1028]
call fcn.30100ae9
test eax, eax
je 0x3006682e
inc ebx
inc ebx
inc edi
inc edi
cmp dword [ebp + 0x30], 0
jne 0x300662b7
dec dword [ebp + 0x30]
jmp 0x300663e1
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0x18]
add dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], eax
movsx eax, word [ebp + 0x14]
lea eax, [ebx + eax*2]
cmp eax, dword [ebp + 0x2c]
jae 0x3006682e
cmp word [ebp + 0x14], 0
je 0x300664be
mov esi, dword [ebp]
push 2
pop edi
dec dword [ebp + 0x14]
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
cmp dword [ebp + 0x1c], 0
je 0x3006643a
cmp esi, dword [ebp - 0x1c]
push dword [ebp + 0x1c]
jae 0x30066431
mov ax, word [esi]
push eax
call fcn.30101562
mov word [ebx], ax
add ebx, edi
add esi, edi
mov dword [ebp], esi
jmp 0x30066480
push 0x30
call fcn.30101562
jmp 0x3006647b
test byte [0x301e4ceb], 0x10
je 0x3006646e
cmp esi, dword [ebp - 0x1c]
jae 0x3006645d
cmp dword [ebp - 0x30], 0
movzx eax, word [esi]
je 0x30066456
add eax, 0xe20
add esi, edi
mov dword [ebp], esi
jmp 0x3006647b
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
and eax, 0xe20
add eax, 0x30
jmp 0x3006647b
cmp esi, dword [ebp - 0x1c]
jae 0x30066478
movzx eax, word [esi]
jmp 0x30066456
push 0x30
pop eax
mov word [ebx], ax
add ebx, edi
dec dword [ebp + 0x10]
dec dword [ebp + 0x18]
cmp dword [ebp - 0x24], 0
je 0x300664b3
cmp dword [ebp + 0x18], 0
je 0x300664b3
mov eax, dword [ebp + 0x18]
push 3
cdq
pop ecx
idiv ecx
test edx, edx
jne 0x300664b3
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
mov ax, word [0x301de042]
mov word [ebx], ax
add ebx, edi
cmp word [ebp + 0x14], 0
jne 0x30066402
cmp dword [ebp + 0x18], 0
jne 0x30066749
cmp dword [ebp + 4], 2
jle 0x30066749
cmp dword [ebp + 0x20], 0x26
je 0x300664dc
and dword [ebp - 0x4c], 0
cmp dword [ebp + 4], 5
jne 0x300664e9
mov dword [ebp + 4], 2
mov esi, dword [ebp]
lea ecx, [ebp + 0x7d0]
mov eax, esi
sub eax, ecx
sar eax, 1
mov ecx, 0x401
sub ecx, eax
push ecx
push esi
push dword [ebp - 0x50]
mov dword [ebp - 0x10], ebx
call fcn.30037720
mov ecx, dword [ebp - 0x78]
and dword [ebp - 0x24], 0
mov dword [ebp + 0x10], eax
movsx eax, ax
lea eax, [esi + eax*2]
mov dword [ebp + 0x18], ecx
mov dword [ebp - 0x1c], eax
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1024]
cmp eax, ecx
je 0x30066534
mov dword [ebp + 0x14], eax
cmp dword [ebp - 0x40], ecx
movsx eax, word [ebp + 0x14]
lea edx, [ebx + eax*4]
jne 0x30066543
lea edx, [ebx + eax*2]
cmp edx, dword [ebp + 0x2c]
ja 0x3006682e
cmp word [ebp + 0x10], cx
jge 0x300665a2
movsx esi, word [ebp + 0x10]
neg esi
cmp eax, esi
jge 0x3006655e
mov esi, eax
cmp dword [ebp + 0x1c], 0
je 0x30066575
push dword [ebp + 0x1c]
push 0x30
call fcn.30101562
push esi
movzx eax, ax
push ebx
jmp 0x3006658f
test byte [0x301e4ceb], 0x10
push esi
push ebx
je 0x30066592
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
and eax, 0xe20
add eax, 0x30
push eax
jmp 0x30066594
push 0x30
call fcn.3000e1b7
add dword [ebp + 0x10], esi
sub dword [ebp + 0x14], esi
lea ebx, [ebx + esi*2]
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp]
movsx eax, word [ebp + 0x14]
sar ecx, 1
push ecx
push eax
call fcn.30055f82
mov edi, eax
xor eax, eax
cmp dword [ebp + 0x1c], eax
mov dword [ebp + 0x30], edi
je 0x300665ef
lea eax, [ebx + edi*2]
cmp eax, dword [ebp + 0x2c]
ja 0x3006682e
xor esi, esi
test edi, edi
jle 0x30066639
mov eax, dword [ebp]
mov ax, word [eax + esi*2]
push dword [ebp + 0x1c]
push eax
call fcn.30101562
mov word [ebx], ax
inc ebx
inc ebx
inc esi
cmp esi, edi
jl 0x300665d3
jmp 0x30066639
test byte [0x301e4ceb], 0x10
je 0x30066625
cmp dword [ebp - 0x30], eax
je 0x30066625
lea ecx, [ebx + edi*2]
cmp ecx, dword [ebp + 0x2c]
ja 0x3006682e
cmp edi, eax
jle 0x30066639
mov ecx, dword [ebp]
mov cx, word [ecx + eax*2]
add cx, 0xe20
mov word [ebx], cx
inc ebx
inc ebx
inc eax
cmp eax, edi
jl 0x3006660d
jmp 0x30066639
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
push ebx
push edi
push dword [ebp]
call fcn.30007ae4
mov ebx, eax
cmp dword [ebp + 0x20], 9
mov eax, dword [ebp]
lea eax, [eax + edi*2]
mov dword [ebp], eax
je 0x30066737
cmp dword [ebp + 0x20], 0x26
mov dword [ebp + 0x24], 0x30
jne 0x300666a0
test byte [ebp + 0x1020], 2
jne 0x3006666b
mov dword [ebp + 0x24], 0x20
jmp 0x300666a0
movsx esi, word [ebp + 0x14]
sub esi, edi
je 0x300666a0
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
mov dword [ebp + 0x20], eax
jmp 0x30066685
mov eax, dword [ebp + 0x20]
dec esi
add eax, esi
push eax
push dword [ebp + 0x1028]
call fcn.30100ae9
test eax, eax
je 0x3006682e
test esi, esi
jne 0x30066682
movsx eax, word [ebp + 0x14]
sub eax, edi
xor esi, esi
cmp dword [ebp + 0x1c], esi
mov ecx, eax
mov dword [ebp + 0x30], ecx
je 0x300666e1
cmp dword [ebp + 0x24], 0x30
jne 0x300666e1
lea eax, [ebx + ecx*2]
cmp eax, dword [ebp + 0x2c]
ja 0x3006682e
cmp ecx, esi
jle 0x30066737
mov edi, ecx
mov dword [ebp + 0x30], esi
push dword [ebp + 0x1c]
push 0x30
call fcn.30101562
mov word [ebx], ax
inc ebx
inc ebx
dec edi
jne 0x300666cd
jmp 0x30066737
test byte [0x301e4ceb], 0x10
je 0x3006671f
cmp dword [ebp - 0x30], esi
je 0x3006671f
cmp dword [ebp + 0x24], 0x30
jne 0x3006671f
lea eax, [ebx + ecx*2]
cmp eax, dword [ebp + 0x2c]
ja 0x3006682e
cmp ecx, esi
jle 0x30066737
mov edx, ecx
shr ecx, 1
mov edi, ebx
mov eax, 0xe500e50
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov dword [ebp + 0x30], esi
lea ebx, [ebx + edx*2]
jmp 0x30066737
lea esi, [ebx + ecx*2]
cmp esi, dword [ebp + 0x2c]
ja 0x3006682e
push ecx
push ebx
push dword [ebp + 0x24]
call fcn.3000e1b7
mov ebx, esi
cmp dword [ebp + 4], 0
je 0x30066749
mov ecx, dword [ebp + 0x14]
movsx eax, cx
sub dword [ebp + 0x18], eax
sub dword [ebp + 0x10], ecx
cmp dword [ebp + 4], 1
jne case.0x30065e74.50
cmp dword [ebp - 0x38], 0
jne case.0x30065e74.50
cmp dword [ebp - 0x4c], 0
jne 0x3006676b
mov ebx, dword [ebp - 0x10]
jmp case.0x30065e74.50
test byte [ebp + 0x1020], 2
je 0x300667ad
mov esi, ebx
sub esi, dword [ebp - 0x10]
sar esi, 1
je case.0x30065e74.50
mov edi, dword [ebp - 0x10]
sub edi, dword [ebp + 0x100c]
sar edi, 1
dec esi
lea eax, [edi + esi]
push eax
push dword [ebp + 0x1028]
call fcn.30100ae9
test eax, eax
je 0x3006682e
test esi, esi
jne 0x3006678c
jmp case.0x30065e74.50
mov eax, ebx
sub eax, dword [ebp - 0x10]
sar eax, 1
push eax
push dword [ebp - 0x10]
push 0x20
call fcn.3000e1b7
jmp case.0x30065e74.50
test byte [0x301e4ceb], 0x10
je case.0x30065e74.50
mov dword [ebp - 0x30], 1
jmp case.0x30065e74.50
add dword [ebp + 0x28], 9
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1028]
and dword [eax + 0x20], 0
test byte [ebp + 0x1020], 2
je 0x30066836
cmp dword [eax + 0x3c], 0
mov esi, eax
jne 0x30066815
push 0x20
lea eax, [esi + 0x40]
push eax
push 0
mov dword [esi + 0x3c], 1
call fcn.30056452
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
push eax
push esi
call fcn.30100ae9
test eax, eax
jne 0x30065f82
or eax, 0xffffffff
jmp 0x3002b736
mov word [ebx], 0x20
jmp 0x30065f8b
mov eax, dword [ebp + 0x1028]
mov esi, dword [ebp]
xor edi, edi
inc edi
or dword [eax + 0x64], edi
lea ecx, [ebp + 0x7d0]
mov eax, esi
sub eax, ecx
sar eax, 1
mov ecx, 0x401
sub ecx, eax
push ecx
mov word [ebx], 0x2f
push esi
push dword [ebp - 0x58]
inc ebx
inc ebx
call fcn.30037720
mov ecx, dword [ebp - 0x64]
mov dword [ebp + 0x10], eax
movsx eax, ax
lea eax, [esi + eax*2]
mov dword [ebp + 0x18], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp + 4], edi
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 1
mov ax, word [0x301de072]
jmp 0x300675e2
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 1
mov ax, word [0x301de074]
jmp 0x300675e2
test byte [ebp + 0x1020], 8
jne 0x30065f8d
mov eax, dword [ebp + 0x1028]
and dword [eax + 0x20], 0
mov eax, dword [ebp + 0x28]
movzx eax, word [eax]
add dword [ebp + 0x28], 2
test byte [ebp + 0x1020], 0x20
mov dword [ebp - 0x18], eax
je 0x300668f8
push 0
push 0xff
push dword [0x301e36f4]
call fcn.301161b8
jmp 0x30066900
push dword [ebp - 0x18]
call fcn.3000b1ab
test eax, eax
mov dword [ebp - 0x54], eax
je case.0x30065e74.50
cmp ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], ebx
jne case.0x30065e74.50
neg dword [ebp - 0x18]
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 1
test byte [0x301e4ce8], 8
je 0x30066955
mov ecx, 0x301de05e
mov ax, word [ecx]
test ax, ax
je 0x300669a6
cmp ebx, dword [ebp + 0x2c]
jae 0x300669a6
mov word [ebx], ax
inc ebx
inc ebx
inc ecx
inc ecx
cmp ecx, 0x301de06a
jb 0x30066937
jmp 0x300669a6
mov ax, word [0x301de05e]
push 2
mov word [ebx], ax
mov ax, word [0x301de060]
pop ecx
add ebx, ecx
test ax, ax
je 0x300669a6
cmp ebx, dword [ebp + 0x2c]
jae 0x300669a6
mov word [ebx], ax
mov ax, word [0x301de062]
add ebx, ecx
test ax, ax
je 0x300669a6
cmp ebx, dword [ebp + 0x2c]
jae 0x300669a6
mov word [ebx], ax
mov ax, word [0x301de064]
add ebx, ecx
test ax, ax
je 0x300669a6
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
mov word [ebx], ax
add ebx, ecx
cmp byte [0x301e4d00], 0
je case.0x30065e74.50
test byte [0x301ddd64], 1
jne case.0x30065e74.50
cmp dword [0x301ddc18], 0
je case.0x30065e74.50
cmp word [0x301de060], 0
jne case.0x30065e74.50
cmp word [ebx - 2], 0x5c
jne case.0x30065e74.50
mov eax, dword [0x301e4968]
mov eax, dword [eax + 0x20]
test eax, eax
je case.0x30065e74.50
cmp byte [eax + 0x4e], 0
jne case.0x30065e74.50
mov word [ebx - 2], 0xa5
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x28]
sub eax, ebx
sar eax, 1
push eax
movzx eax, word [esi]
push ebx
push eax
lea eax, [esi + 2]
push eax
call fcn.30007ae4
mov ebx, eax
movzx eax, word [esi]
lea esi, [esi + eax*2 + 2]
mov ecx, dword [esi]
test cl, cl
mov dword [ebp + 0x28], esi
jne 0x30066a4e
cmp ecx, 0xf800
je 0x30068455
cmp ecx, 0xf400
je 0x30068455
mov eax, ecx
shr eax, 0x10
movzx edx, ah
movzx eax, al
mov dword [ebp - 8], eax
movzx eax, cx
push eax
push edx
push dword [ebp - 0x5c]
add esi, 4
push dword [ebp - 0x40]
mov dword [ebp - 0x68], edx
mov dword [ebp + 8], eax
mov dword [ebp + 0x28], esi
call fcn.3010098a
mov dword [ebp + 0x1c], eax
mov dword [ebp - 0x14], 1
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x1028]
xor edi, edi
inc edi
or dword [eax + 0x64], edi
mov dword [eax + 0x1c], edi
mov eax, dword [ebp + 0x28]
movzx ecx, byte [eax]
inc eax
mov dword [ebp + 0x18], ecx
movzx ecx, byte [eax]
inc eax
movzx esi, byte [eax]
inc eax
mov dword [ebp - 0x78], ecx
movsx ecx, word [eax]
inc eax
inc eax
mov dword [ebp + 0x28], eax
lea eax, [ebp + 0xfe8]
push eax
mov dword [ebp - 0x64], ecx
call fcn.3001295f
test esi, esi
je 0x30066ad8
push esi
call fcn.30028bf5
lea eax, [ebp + 0xfe8]
push eax
call fcn.3000fdf3
push 0
lea eax, [ebp + 0x7d0]
push eax
call fcn.3002b8fc
cmp dword [ebp + 0x18], 0
mov esi, eax
mov dword [ebp - 0x70], esi
mov eax, dword [ebp - 0x6e]
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x14], eax
je 0x30066b1c
lea eax, [ebp + 0xfe0]
push eax
call fcn.3001295f
call fcn.3002894b
lea eax, [ebp + 0xfe0]
push eax
call fcn.30028f69
call fcn.30057473
push dword [ebp - 0x64]
lea eax, [ebp - 0x58]
push dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.30101198
test eax, eax
je 0x3006682e
lea eax, [ebp + 0xfe8]
push eax
call fcn.3001a5f7
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x38], edi
je 0x30066bc6
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x58]
je 0x30066b58
test eax, eax
jne 0x30066b83
cmp si, word [ebp - 0x6e]
jge 0x30066b7b
movsx eax, si
push eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
push 0x401
lea eax, [ebp + 0x7d0]
push eax
call fcn.30100b83
and dword [ebp - 0x50], 0
and dword [ebp - 0x38], 0
mov eax, dword [ebp + 0x10]
cmp ax, word [ebp + 0x14]
jge 0x30066b8f
mov dword [ebp + 0x14], eax
lea eax, [ebp + 0x7d0]
mov dword [ebp], eax
xor eax, eax
cmp dword [ebp + 0x18], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x48], eax
mov dword [ebp + 4], 5
je 0x300664e2
movsx eax, word [ebp + 0x14]
lea eax, [ebp + eax*2 + 0x7d0]
mov dword [ebp - 0x1c], eax
jmp case.0x30065e74.50
cmp dword [ebp - 0x50], 0
jne 0x30066b83
cmp dword [ebp - 0x28], 0
jne 0x30066bdf
test byte [ebp + 0xffc], 1
jne 0x30065d1f
and dword [ebp + 0x10], 0
jmp 0x30066b8f
mov eax, dword [ebp + 0x1028]
xor edx, edx
inc edx
or dword [eax + 0x64], edx
mov dword [eax + 0x1c], edx
mov eax, dword [ebp + 0x28]
movzx ecx, byte [eax]
inc eax
movzx esi, byte [eax]
inc eax
inc eax
cmp dword [ebp - 0x28], edx
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x28], eax
jne 0x30066c12
xor edi, edi
jmp 0x30066c3a
cmp dword [ebp + 0x1014], 0x80000100
jne 0x30066c36
push 0xf
lea eax, [ebp + 0x7d0]
push eax
call fcn.3002b8fc
mov ecx, eax
mov dword [ebp - 0x70], ecx
mov edi, dword [ebp - 0x6e]
jmp 0x30066c3a
xor edi, edi
xor ecx, ecx
mov esi, dword [ebp + 0x18]
cmp esi, 1
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x10], ecx
jle 0x30066c5c
movsx eax, cx
cdq
idiv esi
mov esi, edx
test esi, esi
je 0x30066c59
test cx, cx
jg 0x30066c5c
add esi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x30]
movsx edx, di
add eax, esi
cmp eax, edx
mov dword [ebp + 0x24], eax
jge 0x30066cd5
push dword [ebp + 0x24]
movsx eax, cx
mov dword [ebp - 0x44], eax
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x10]
push eax
push 0x401
lea eax, [ebp + 0x7d0]
push eax
call fcn.30100b83
movsx eax, word [ebp + 0x14]
push eax
push dword [ebp + 0x24]
call fcn.30055f82
mov edi, eax
jmp 0x30066cad
movsx eax, di
cmp word [ebp + eax*2 + 0x7ce], 0x30
jne 0x30066cb2
dec edi
test di, di
jg 0x30066c9e
cmp dword [ebp + 0x18], 1
mov ecx, dword [ebp + 0x10]
jle 0x30066cd5
movsx eax, cx
cmp eax, dword [ebp - 0x44]
je 0x30066cd5
cdq
idiv dword [ebp + 0x18]
mov esi, edx
test esi, esi
je 0x30066cd2
test cx, cx
jg 0x30066cd5
add esi, dword [ebp + 0x18]
lea eax, [ebp + 0x7d0]
sub ecx, esi
mov dword [ebp], eax
mov dword [ebp - 0x44], ecx
mov dword [ebp + 0x10], esi
movsx eax, di
lea eax, [ebp + eax*2 + 0x7d0]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x48], eax
mov dword [ebp + 4], eax
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x28]
movzx eax, byte [eax]
inc dword [ebp + 0x28]
cmp word [ebp - 0x44], 0
mov dword [ebp + 0x18], eax
jge 0x30066d22
mov word [ebx], 0x2d
inc ebx
inc ebx
neg dword [ebp - 0x44]
jmp 0x30066d2e
cmp esi, 0x1e
jne 0x30066d2e
mov word [ebx], 0x2b
inc ebx
inc ebx
lea eax, [ebp + 0x7d0]
push 0x401
push eax
mov dword [ebp], eax
movsx eax, word [ebp - 0x44]
push eax
call fcn.30037720
mov dword [ebp + 0x10], eax
movsx eax, ax
jmp 0x30066ce9
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 1
mov eax, dword [ebp + 0x28]
movzx eax, byte [eax]
mov dword [ebp - 0x20], eax
jmp 0x30065fac
mov eax, dword [ebp + 0x28]
movzx eax, byte [eax]
inc dword [ebp + 0x28]
mov dword [ebp + 0x30], eax
jmp case.0x30065e74.23
cmp dword [ebp - 0x14], 0
jne case.0x30065e74.34
mov eax, dword [ebp + 0x28]
movzx eax, byte [eax]
inc dword [ebp + 0x28]
mov dword [ebp + 0x30], eax
lea eax, [ebp + 0xfe8]
push eax
push dword [ebp - 0x20]
add esi, 0xffffffa2
push esi
call fcn.300c6d7d
test eax, eax
je case.0x30065e74.50
push 0x401
lea eax, [ebp + 0x7d0]
push eax
lea eax, [ebp + 0xfe8]
push eax
call fcn.301008ec
mov edi, eax
cmp dword [ebp + 0x30], edi
jle 0x30066dee
sub dword [ebp + 0x30], edi
js 0x3006682e
mov eax, dword [ebp + 0x30]
lea esi, [ebx + eax*2]
cmp esi, dword [ebp + 0x2c]
ja 0x3006682e
push eax
push ebx
push 0xe50
call fcn.3000e1b7
mov ebx, esi
xor eax, eax
test edi, edi
jle case.0x30065e74.50
cmp ebx, dword [ebp + 0x2c]
jae case.0x30065e74.50
mov cx, word [ebp + eax*2 + 0x7d0]
add cx, 0xe20
mov word [ebx], cx
inc ebx
inc ebx
inc eax
cmp edi, eax
jg 0x30066df8
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x28]
movzx eax, byte [eax]
inc dword [ebp + 0x28]
mov dword [ebp + 0x30], eax
lea eax, [ebp + 0xfe8]
push eax
push dword [ebp - 0x20]
add esi, 0xffffffd0
push esi
call fcn.300c6d7d
test eax, eax
je case.0x30065e74.50
push 0x401
lea eax, [ebp + 0x7d0]
push eax
lea eax, [ebp + 0xfe8]
push eax
call fcn.301008ec
mov esi, dword [ebp + 0x30]
cmp esi, eax
mov dword [ebp + 0x24], eax
jle 0x30066ea8
sub esi, eax
cmp dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], 0x30
mov dword [ebp + 0x30], esi
je 0x30066e88
push dword [ebp + 0x1c]
lea eax, [ebp + 0x20]
push 1
push 1
push eax
call fcn.301016c4
test esi, esi
jl 0x3006682e
lea edi, [ebx + esi*2]
cmp edi, dword [ebp + 0x2c]
ja 0x3006682e
push esi
push ebx
push dword [ebp + 0x20]
call fcn.3000e1b7
mov ebx, edi
cmp dword [ebp + 0x1c], 0
je 0x30066ec8
push dword [ebp + 0x1c]
lea eax, [ebp + 0x7d0]
push 0x401
push dword [ebp + 0x24]
push eax
call fcn.301016c4
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
push ebx
push dword [ebp + 0x24]
lea eax, [ebp + 0x7d0]
push eax
jmp 0x30067601
cmp dword [0x301e56e4], 0
jne 0x30066f0d
cmp dword [ebp - 0x14], 0
jne case.0x30065e74.15
push 0x78
lea eax, [ebp + 0x4dc]
push eax
push 0x41e
call fcn.300052ce
lea eax, [ebp + 0x4dc]
jmp 0x30066fb8
mov dword [ebp - 4], eax
cmp dword [0x301e56e4], 0
jne 0x30066f39
cmp dword [ebp - 0x14], 0
jne case.0x30065e74.16
push 0
push 0x12c
lea eax, [ebp + 0x34]
push eax
push 0x41e
call fcn.30005bc4
lea eax, [ebp + 0x34]
jmp 0x30066fb8
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
jne 0x30066f71
cmp byte [0x301e4d00], 0
jne 0x30066f71
mov ecx, dword [ebp - 8]
cmp ecx, 2
je 0x30066f71
cmp ecx, 6
je 0x30066f71
cmp ecx, 9
je 0x30066f71
cmp ecx, 0xa
je 0x30066f71
cmp ecx, 0xb
je 0x30066f71
cmp ecx, 0xc
je 0x30066f71
cmp ecx, 7
jne 0x30066fb8
cmp dword [ebp - 0x34], 2
mov dword [ebp + 0x24], 1
je 0x30066fb8
cmp dword [ebp + 8], 0
jne 0x30066fd0
cmp byte [0x301e4d00], 0
jne 0x30066fd0
mov eax, dword [ebp - 8]
cmp eax, 2
je 0x30066fd0
cmp eax, 6
je 0x30066fd0
cmp eax, 9
je 0x30066fd0
cmp eax, 0xa
je 0x30066fd0
cmp eax, 0xb
je 0x30066fd0
cmp eax, 0xc
je 0x30066fd0
cmp eax, 7
je 0x30066fd0
mov eax, dword [0x301dd93c]
mov dword [ebp - 4], eax
xor eax, eax
cmp esi, 0x3b
setne al
dec eax
and al, 2
add eax, 0xff
mov dword [ebp + 0x30], eax
jmp 0x30066fd7
mov dword [ebp + 0x24], 1
cmp dword [ebp + 0x24], 0
jne 0x300671fc
cmp esi, 0x13
je 0x30066fef
cmp esi, 0x14
jne 0x300671fc
mov eax, dword [ebp - 4]
movzx ecx, word [eax]
push ecx
add eax, 2
push eax
call fcn.3015137e
test eax, eax
je 0x300671fc
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 2
mov dword [ebp + 0x30], 0xff
jmp 0x300671fc
cmp dword [ebp - 0x14], 0
jne case.0x30065e74.13
cmp dword [0x301e56e4], 0
mov edi, 0x41e
je 0x30067034
add edi, 0xffffffeb
mov esi, 0x94
push esi
lea eax, [ebp + 0x3b4]
push eax
push edi
call fcn.30005abc
push esi
lea eax, [ebp + 0x28c]
push eax
push edi
call fcn.30005b20
cmp dword [ebp + 0x20], 0x44
mov dword [ebp + 0x30], 0xff
mov dword [ebp + 0xc], 0x301e60f6
jne 0x30067077
lea eax, [ebp + 0x28c]
mov dword [ebp - 4], eax
jmp case.0x30065e74.23
lea eax, [ebp + 0x3b4]
jmp 0x3006706f
cmp dword [ebp + 8], 0
jne 0x300671be
mov eax, dword [ebp - 8]
cmp eax, 2
je 0x300671be
cmp eax, 6
je 0x300671be
cmp eax, 9
je 0x300671be
cmp eax, 0xa
je 0x300671be
cmp eax, 0xb
je 0x300671be
cmp eax, 0xc
je 0x300671be
cmp eax, 7
je 0x300671be
cmp byte [0x301e4d00], 0
je 0x3006714f
cmp esi, 0xf
jne 0x300670e9
push 0x102
lea eax, [ebp + 0x5cc]
push eax
push 0x12
jmp 0x30067126
cmp esi, 0x10
jne 0x300670fe
push 0x102
lea eax, [ebp + 0x5cc]
push eax
push 0x11
jmp 0x30067126
cmp esi, 0x33
jne 0x30067113
push 0x102
lea eax, [ebp + 0x5cc]
push eax
push 0xd
jmp 0x30067126
cmp esi, 0x34
jne 0x30067133
push 0x102
lea eax, [ebp + 0x5cc]
push eax
push 0xc
call fcn.301281c0
test eax, eax
je 0x30065d84
lea eax, [ebp + 0x5cc]
mov dword [ebp - 4], eax
mov dword [ebp + 0x30], 0xff
mov dword [ebp + 0xc], 0x301e60f6
jmp case.0x30065e74.23
cmp esi, 0x33
jne 0x3006715d
mov dword [ebp + 0x20], 0xf
jmp 0x30067169
cmp esi, 0x34
jne 0x3006716c
mov dword [ebp + 0x20], 0x10
mov esi, dword [ebp + 0x20]
cmp esi, 0xf
mov eax, dword [0x301dd938]
mov dword [ebp + 0x30], 0xff
mov dword [ebp + 0xc], 0x301e60f6
je 0x30067189
mov eax, dword [0x301dd940]
movzx ecx, word [eax]
mov dword [ebp - 4], eax
push ecx
add eax, 2
push eax
call fcn.3015137e
test eax, eax
je case.0x30065e74.23
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 2
mov dword [ebp + 0x30], 0xff
mov dword [ebp + 0x20], 0x10
jmp case.0x30065e74.23
mov dword [ebp + 0x24], 1
jmp case.0x30065e74.23
xor eax, eax
cmp esi, 0x43
jmp 0x300671d6
xor eax, eax
cmp esi, 0xe
sete al
mov dword [ebp + 0xc], 0x301e60ec
inc eax
mov dword [ebp + 0x30], eax
jmp case.0x30065e74.23
xor eax, eax
cmp esi, 0x47
jmp 0x300671f5
xor eax, eax
cmp esi, 0x12
sete al
inc eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0xc], 0x301e60ea
jmp case.0x30065e74.23
xor eax, eax
cmp esi, 0x4d
jmp 0x30067214
xor eax, eax
cmp esi, 0x18
sete al
mov dword [ebp + 0xc], 0x301e60f2
inc eax
mov dword [ebp + 0x30], eax
jmp case.0x30065e74.23
xor eax, eax
cmp esi, 0x4f
jmp 0x30067233
xor eax, eax
cmp esi, 0x1a
sete al
mov dword [ebp + 0xc], 0x301e60f4
inc eax
mov dword [ebp + 0x30], eax
jmp case.0x30065e74.23
xor eax, eax
cmp esi, 0x4b
jmp 0x30067252
xor eax, eax
cmp esi, 0x16
sete al
mov dword [ebp + 0xc], 0x301e60f0
inc eax
mov dword [ebp + 0x30], eax
jmp case.0x30065e74.23
cmp esi, 0x35
je 0x30067271
cmp esi, 0x36
je 0x30067271
cmp esi, 0x37
jne 0x30067278
mov dword [ebp - 0x74], 1
cmp esi, 0x1b
je 0x30067282
cmp esi, 0x1c
jne case.0x30065e74.47
cmp dword [ebp - 8], 3
je 0x300672b3
cmp dword [ebp - 8], 4
je 0x300672b3
mov eax, dword [0x301ddd88]
or eax, dword [0x301ddc18]
jne 0x300672ad
cmp dword [ebp + 8], 0x411
je 0x300672ad
cmp dword [ebp + 8], 0x404
jne case.0x30065e74.47
cmp dword [ebp - 0x74], 0
je case.0x30065e74.47
mov dword [ebp + 0x20], 0x39
mov dword [ebp + 0x30], 4
mov dword [ebp + 0xc], 0x301e60e8
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 1
cmp dword [0x301e48a8], 0
jne 0x300672df
xor edi, edi
jmp 0x300672e7
mov eax, dword [0x301e48ac]
mov edi, dword [eax + 0x24]
cmp dword [ebp - 0x28], 0
jne 0x300672f5
test edi, edi
je 0x3006682e
mov si, word [0x301e60e8]
test si, si
jne 0x300673d7
cmp dword [ebp + 0x1014], 0x80000100
je 0x3006731c
push dword [ebp + 0x1024]
call fcn.300129c4
mov eax, dword [ebp - 0x20]
push edi
mov esi, 0x301e60e8
push esi
mov dword [0x301e8b24], eax
call fcn.300c6dfe
mov edx, dword [0x301e56e4]
and dword [0x301e8b24], 0
test edx, edx
jne 0x300673ab
test eax, eax
je 0x3006682e
test byte [0x301e4ceb], 4
je 0x30067358
cmp dword [ebp - 0x34], 2
je 0x3006735e
cmp dword [ebp - 8], 6
jne 0x300673ab
movsx ecx, word [0x301e60e8]
xor eax, eax
test edi, edi
setne al
lea eax, [eax*4 + 0x76c]
cmp ecx, eax
jne 0x3006739d
cmp word [0x301e60ea], 1
jge 0x3006738a
mov word [0x301e60ea], 1
cmp dword [0x301e60ec], 1
jae 0x3006739d
mov dword [0x301e60ec], 1
push 0
push esi
call fcn.3015269e
mov edx, dword [0x301e56e4]
test eax, eax
je 0x3006682e
mov si, word [0x301e60e8]
mov edi, dword [ebp + 0x20]
lea eax, [edi - 0xf]
cmp eax, 0x50
ja case.0x300673d0.17
movzx eax, byte [eax + 0x30068a38]
jmp dword [eax*4 + 0x30068a14]
mov edx, dword [0x301e56e4]
jmp 0x300673ba
mov ax, word [0x301de040]
mov esi, dword [ebp - 0x20]
mov word [ebx], ax
mov eax, dword [ebp + 0x30]
inc ebx
inc ebx
lea ebx, [ebx + eax*2]
cmp ebx, dword [ebp + 0x2c]
ja 0x3006682e
mov eax, dword [0x301e60f8]
mov dword [ebp + 0x24], ebx
mov dword [ebp - 0xc], eax
jmp 0x30067448
movsx eax, word [ebp - 0xc]
push 0xa
cdq
pop ecx
idiv ecx
dec esi
add edx, 0x30
cmp dword [ebp + 0x1c], 0
mov edi, eax
mov dword [ebp - 0xc], edx
je 0x30067432
push dword [ebp + 0x1c]
lea eax, [ebp - 0xc]
push 1
push 1
push eax
call fcn.301016c4
cmp esi, dword [ebp + 0x30]
jge 0x30067445
sub dword [ebp + 0x24], 2
mov ax, word [ebp - 0xc]
mov ecx, dword [ebp + 0x24]
mov word [ecx], ax
mov dword [ebp - 0xc], edi
test esi, esi
jne 0x30067409
jmp case.0x30065e74.50
mov eax, dword [0x301e60f0]
push 0xc
pop ecx
cmp ax, cx
mov dword [ebp - 0xc], eax
jle 0x30067467
add eax, 0xfffffff4
mov dword [ebp - 0xc], eax
test ax, ax
jne 0x3006746f
mov dword [ebp - 0xc], ecx
xor eax, eax
cmp dword [ebp + 0x20], 0x20
lea edi, [ebp - 0xc]
setne al
mov dword [ebp + 0xc], edi
inc eax
mov dword [ebp + 0x30], eax
jmp 0x30067666
mov edi, dword [ebp + 0x2c]
lea eax, [ebx + 4]
cmp eax, edi
mov dword [ebp + 0x24], eax
ja 0x3006682e
mov eax, dword [ebp + 0xc]
movsx esi, word [eax]
push 0x64
mov eax, esi
cdq
pop ecx
idiv ecx
push 0xa
pop ecx
push 0xa
mov eax, edx
cdq
idiv ecx
mov ecx, eax
mov eax, esi
cdq
pop esi
idiv esi
test cx, cx
je 0x300674f3
cmp dword [ebp - 0x14], 0
je 0x300674e8
cmp dword [ebp + 0x1c], 0x13
ja 0x300674e8
add ecx, 0x30
mov word [ebx], cx
push dword [ebp + 0x1c]
sub edi, ebx
sar edi, 1
push edi
push 2
add edx, 0x30
push ebx
mov word [ebx + 2], dx
call fcn.301016c4
jmp 0x3006751b
add ecx, 0xe50
mov word [ebx], cx
jmp 0x30067511
cmp dword [ebp + 0x30], 2
jne 0x30067523
cmp dword [ebp - 0x14], 0
je 0x3006750c
cmp dword [ebp + 0x1c], 0x13
ja 0x3006750c
mov word [ebx], 0x30
jmp 0x300674cf
mov word [ebx], 0xe50
add edx, 0xe50
mov word [ebx + 2], dx
mov ebx, dword [ebp + 0x24]
jmp case.0x30065e74.50
cmp dword [ebp - 0x14], 0
je 0x3006754b
cmp dword [ebp + 0x1c], 0x13
ja 0x3006754b
push dword [ebp + 0x1c]
sub edi, ebx
sar edi, 1
push edi
push dword [ebp + 0x30]
add edx, 0x30
push ebx
mov word [ebx], dx
call fcn.301016c4
jmp 0x300675e5
add edx, 0xe50
mov word [ebx], dx
jmp 0x300675e5
cmp byte [0x301e4d00], 0
je case.0x30065e74.50
xor ecx, ecx
cmp dword [0x301ddc18], ecx
je 0x3006757a
cmp dword [ebp + 8], ecx
jne 0x3006757a
cmp dword [ebp - 8], ecx
je 0x30067594
cmp dword [ebp + 8], 0x411
jne 0x30067588
cmp dword [ebp - 8], ecx
je 0x30067594
mov eax, dword [ebp - 8]
cmp eax, 3
jne 0x300676ce
mov edi, dword [0x301de2f8]
jmp 0x3006759f
mov edi, dword [ebp + 0x24]
lea eax, [edi + 0x14]
push eax
push 0x301e60e8
mov dword [ebp + 0x24], eax
call fcn.30100b4f
cmp eax, 0xffffffff
jne 0x3006759c
cmp dword [ebp + 0x20], 0x27
jne 0x300675d8
mov eax, dword [0x301de2fc]
mov ecx, dword [0x301de2f8]
imul eax, eax, 0x14
lea eax, [eax + ecx - 0x14]
cmp edi, eax
jae 0x30067640
mov dword [ebp + 0x20], 0x28
cmp dword [ebp + 0x20], 0x35
jne 0x300675ec
mov ax, word [edi + 0x10]
mov word [ebx], ax
inc ebx
inc ebx
jmp case.0x30065e74.50
cmp dword [ebp + 0x20], 0x36
jne 0x3006760d
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
push ebx
push 1
add edi, 0xc
push edi
call fcn.30007ae4
mov ebx, eax
jmp case.0x30065e74.50
cmp dword [ebp + 0x20], 0x28
je 0x30067619
cmp dword [ebp + 0x20], 0x37
jne 0x30067640
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
push ebx
push 2
lea eax, [edi + 0xc]
push eax
call fcn.30007ae4
cmp dword [ebp + 0x20], 0x37
mov ebx, eax
je case.0x30065e74.50
mov si, word [0x301e60e8]
mov ax, si
sub ax, word [edi]
mov edx, dword [0x301e56e4]
inc eax
mov dword [ebp - 0xc], eax
xor eax, eax
cmp dword [ebp + 0x20], 0x38
setne al
inc eax
mov dword [ebp + 0x30], eax
lea eax, [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 0x34], 2
jne 0x30067e94
test byte [0x301e4ceb], 2
je 0x30067e94
mov eax, dword [ebp + 0x20]
cmp eax, 0xd
jl 0x30067e67
cmp eax, 0xe
jle 0x30067e45
cmp eax, 0x10
jle 0x30067e67
cmp eax, 0x12
jg 0x30067e67
movsx eax, word [0x301e60ea]
mov ecx, dword [ebp + 0x1010]
push eax
movsx eax, si
push eax
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
sub ecx, eax
push ecx
push ebx
call fcn.30152a6a
jmp 0x30067e7b
cmp dword [0x301ddd88], ecx
je 0x300676e0
cmp dword [ebp + 8], 0
jne 0x300676e0
test eax, eax
je 0x300676f6
cmp dword [ebp + 8], 0x404
jne 0x300676ed
test eax, eax
je 0x300676f6
cmp eax, 4
jne 0x3006780b
call sub.MSO.DLL_Ordinal_1555
test eax, eax
jne 0x300677fe
test byte [0x301ddd65], 0x20
je 0x30067728
cmp edi, 0x38
je 0x30067716
cmp edi, 0x39
jne 0x30067721
mov ax, word [0x300884fc]
mov word [ebx], ax
inc ebx
inc ebx
and byte [0x301ddd65], 0xdf
cmp edi, 0x35
je 0x300677e0
cmp edi, 0x36
je 0x300677e0
cmp edi, 0x37
jne 0x30067772
cmp word [0x301e60e8], 0x778
mov eax, 0x300884f0
jge 0x30067754
mov eax, 0x300884e0
mov ecx, dword [ebp + 0x2c]
sub ecx, ebx
sar ecx, 1
push ecx
push ebx
push eax
call fcn.3000f9e2
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x60], 1
jmp case.0x30065e74.50
mov eax, dword [0x301e60e8]
add eax, 0xfffff889
cmp dword [ebp - 0x60], 0
mov edi, 0x301e60e8
mov dword [ebp + 0x30], 4
mov dword [ebp + 0xc], edi
mov dword [ebp - 0xc], eax
je 0x300677bc
cmp ax, 1
jne 0x300677ad
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
push ebx
push 0x300884c4
jmp 0x300679f2
test ax, ax
jg 0x300677c1
xor ecx, ecx
inc ecx
sub ecx, eax
mov eax, ecx
mov dword [ebp - 0xc], eax
test ax, ax
jle 0x300677ce
lea edi, [ebp - 0xc]
mov dword [ebp + 0x30], 1
mov dword [ebp + 0xc], edi
mov si, word [0x301e60e8]
mov edx, dword [0x301e56e4]
jmp 0x30067666
cmp word [0x301e60e8], 0x778
mov eax, 0x300884d8
jge 0x30067754
mov eax, 0x300884cc
jmp 0x30067754
mov si, word [0x301e60e8]
mov edx, dword [0x301e56e4]
cmp edi, 0x35
je case.0x30065e74.50
cmp edi, 0x36
je case.0x30065e74.50
cmp edi, 0x37
jne case.0x300673d0.17
jmp case.0x30065e74.50
cmp dword [ebp - 0x14], 0
jne case.0x300673d0.15
mov eax, dword [ebp + 0xc]
movsx eax, word [eax]
dec eax
push eax
push dword [ebp - 4]
jmp 0x300679d6
test byte [0x301e4ceb], 4
je 0x30067990
test edx, edx
jne 0x30067990
cmp dword [ebp - 0x34], edx
je 0x30067990
cmp dword [ebp - 0x34], 2
mov ecx, dword [ebp - 8]
je 0x300678ef
cmp ecx, 6
je 0x300678ef
mov eax, dword [ebp - 4]
cmp eax, dword [0x301dd93c]
je 0x300678d7
cmp eax, dword [0x301dd944]
je 0x300678d7
cmp eax, dword [0x301dd940]
je 0x30067898
cmp eax, dword [0x301dd938]
jne 0x30067996
movsx eax, word [0x301e60f6]
cmp eax, 1
jge 0x300678a7
xor eax, eax
inc eax
dec eax
push eax
push 0x30068b38
call fcn.3003fe84
mov ecx, dword [ebp + 0x2c]
sub ecx, ebx
sar ecx, 1
push ecx
push ebx
push eax
call fcn.3000f9e2
lea ebx, [ebx + eax*2]
mov eax, dword [ebp + 0x1028]
mov dword [eax + 0x64], 1
jmp case.0x30065e74.50
movsx eax, word [0x301e60ea]
cmp eax, 1
jge 0x300678e6
xor eax, eax
inc eax
dec eax
push eax
push 0x30068a8c
jmp 0x300678ae
mov eax, dword [ebp - 4]
cmp eax, dword [0x301dd93c]
jne 0x30067921
movsx eax, word [0x301e60ea]
mov ecx, dword [ebp + 0x1010]
push eax
movsx eax, si
push eax
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
sub ecx, eax
push ecx
push ebx
call fcn.30152a6a
jmp 0x3006797b
cmp eax, dword [0x301dd944]
jne 0x30067950
movsx eax, word [0x301e60ea]
mov ecx, dword [ebp + 0x1010]
push eax
movsx eax, si
push eax
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
sub ecx, eax
push ecx
push ebx
call fcn.30152aaf
jmp 0x3006797b
cmp eax, dword [0x301dd940]
je 0x30067960
cmp eax, dword [0x301dd938]
jne 0x30067996
push dword [0x301e60ec]
movsx eax, word [0x301e60ea]
push eax
movsx eax, si
push eax
push dword [ebp + 0x2c]
push ebx
call fcn.30152ba4
mov dword [ebp + 0x30], eax
lea ebx, [ebx + eax*2]
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 2
jmp case.0x30065e74.50
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp dword [ebp + 0x24], 0
je 0x300679cd
cmp edi, 0x3b
jg 0x300679ff
je 0x30067a1b
cmp edi, 0xf
jl 0x300679cd
cmp edi, 0x10
jle 0x30067c1a
cmp edi, 0x13
je 0x30067b15
cmp edi, 0x14
je 0x30067a1b
cmp edi, 0x32
jle 0x300679cd
cmp edi, 0x34
jle 0x30067c1a
mov ecx, dword [ebp + 0xc]
movsx ecx, word [ecx]
dec ecx
push ecx
push eax
call fcn.3003fe84
mov esi, eax
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
mov eax, dword [ebp + 0x30]
inc eax
push eax
call fcn.30055f82
push eax
push ebx
push esi
call fcn.3000f9e2
lea ebx, [ebx + eax*2]
jmp case.0x30065e74.50
cmp edi, 0x44
jl 0x300679cd
cmp edi, 0x45
jle 0x30067c1a
cmp edi, 0x48
je 0x30067b15
cmp edi, 0x49
jne 0x300679cd
mov edi, dword [ebp + 8]
test edi, edi
mov eax, edi
jne 0x30067a29
mov eax, 0x409
cmp ecx, 6
jne 0x30067a5d
test edx, edx
jne 0x30067b03
movsx eax, word [0x301e60ea]
mov ecx, dword [ebp + 0x1010]
push eax
movsx eax, si
push eax
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
sub ecx, eax
push ecx
push ebx
call fcn.30152a6a
jmp 0x30067aba
cmp ecx, 7
jne 0x30067a7c
test edx, edx
jne 0x30067b03
movsx eax, word [0x301e60ea]
dec eax
push eax
push 0x14
push 0x41e
jmp 0x30067aac
cmp ecx, 2
je 0x30067a95
cmp ecx, 9
je 0x30067a95
cmp ecx, 0xa
je 0x30067a95
cmp ecx, 0xb
je 0x30067a95
cmp ecx, 0xc
jne 0x30067ad3
test edx, edx
jne 0x30067ad7
push ecx
push eax
call fcn.30152124
movsx ecx, word [0x301e60ea]
dec ecx
push ecx
push 0x14
push eax
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
push ebx
call fcn.300f2fa2
cmp dword [ebp + 0x20], 0x3b
mov dword [ebp + 0x30], eax
jne 0x30067bb5
mov dword [ebp + 0x30], 1
jmp 0x30067bb5
test edx, edx
je 0x30067aa0
cmp ecx, 2
je 0x30067b03
cmp ecx, 9
je 0x30067b03
cmp ecx, 0xa
je 0x30067b03
cmp ecx, 0xb
je 0x30067b03
cmp ecx, 0xc
je 0x30067b03
mov ecx, edi
and ch, 3
cmp cx, 1
je 0x30067b03
cmp edi, 0x41e
jne 0x30067aa0
movsx eax, word [0x301e60ea]
dec eax
push eax
push 0x14
push 0x409
jmp 0x30067aac
mov edi, dword [ebp + 8]
test edi, edi
mov eax, edi
jne 0x30067b23
mov eax, 0x409
cmp ecx, 6
jne 0x30067b57
test edx, edx
jne 0x30067c0a
movsx eax, word [0x301e60ea]
mov ecx, dword [ebp + 0x1010]
push eax
movsx eax, si
push eax
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
sub ecx, eax
push ecx
push ebx
call fcn.30152a6a
jmp 0x30067bb2
cmp ecx, 7
jne 0x30067b74
test edx, edx
jne 0x30067c0a
movsx eax, word [0x301e60ea]
dec eax
push eax
push 0x13
jmp 0x30067d2f
cmp ecx, 2
je 0x30067b8d
cmp ecx, 9
je 0x30067b8d
cmp ecx, 0xa
je 0x30067b8d
cmp ecx, 0xb
je 0x30067b8d
cmp ecx, 0xc
jne 0x30067bda
test edx, edx
jne 0x30067bde
push ecx
push eax
call fcn.30152124
movsx ecx, word [0x301e60ea]
dec ecx
push ecx
push 0x13
push eax
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
push ebx
call fcn.300f2fa2
mov dword [ebp + 0x30], eax
cmp dword [ebp + 0x30], 0
jle 0x30067bd2
push dword [ebp + 0x30]
push ebx
call fcn.3015137e
test eax, eax
je 0x30067bd2
mov eax, dword [ebp + 0x1028]
or dword [eax + 0x64], 2
mov eax, dword [ebp + 0x30]
jmp 0x300679f7
test edx, edx
je 0x30067b98
cmp ecx, 2
je 0x30067c0a
cmp ecx, 9
je 0x30067c0a
cmp ecx, 0xa
je 0x30067c0a
cmp ecx, 0xb
je 0x30067c0a
cmp ecx, 0xc
je 0x30067c0a
mov ecx, edi
and ch, 3
cmp cx, 1
je 0x30067c0a
cmp edi, 0x41e
jne 0x30067b98
movsx eax, word [0x301e60ea]
dec eax
push eax
push 0x13
jmp 0x30067d7b
cmp edi, 0xf
je 0x30067ce0
cmp edi, 0x33
je 0x30067ce0
cmp edi, 0x44
je 0x30067ce0
cmp ecx, 2
je 0x30067c53
cmp ecx, 6
je 0x30067c53
cmp ecx, 9
je 0x30067c53
cmp ecx, 0xa
je 0x30067c53
cmp ecx, 0xb
je 0x30067c53
cmp ecx, 0xc
jne 0x30067c70
test edx, edx
jne 0x30067c70
push ecx
push dword [ebp + 8]
call fcn.30152169
movsx ecx, word [0x301e60f6]
dec ecx
push ecx
push 0x10
jmp 0x30067ba3
cmp ecx, 7
jne 0x30067c89
test edx, edx
jne 0x30067cc0
movsx eax, word [0x301e60f6]
dec eax
push eax
push 0x10
jmp 0x30067d2f
test edx, edx
je 0x30067cd0
cmp ecx, 2
je 0x30067cc0
cmp ecx, 6
je 0x30067cc0
cmp ecx, 9
je 0x30067cc0
cmp ecx, 0xa
je 0x30067cc0
cmp ecx, 0xb
je 0x30067cc0
cmp ecx, 0xc
je 0x30067cc0
mov eax, dword [ebp + 8]
and ah, 3
cmp ax, 1
je 0x30067cc0
cmp dword [ebp + 8], 0x41e
jne 0x30067cd0
movsx eax, word [0x301e60f6]
dec eax
push eax
push 0x10
jmp 0x30067d7b
movsx eax, word [0x301e60f6]
dec eax
push eax
push 0x10
jmp 0x30067d90
cmp ecx, 2
je 0x30067cfe
cmp ecx, 6
je 0x30067cfe
cmp ecx, 9
je 0x30067cfe
cmp ecx, 0xa
je 0x30067cfe
cmp ecx, 0xb
je 0x30067cfe
cmp ecx, 0xc
jne 0x30067d1b
test edx, edx
jne 0x30067d1b
push ecx
push dword [ebp + 8]
call fcn.30152169
movsx ecx, word [0x301e60f6]
dec ecx
push ecx
push 0xf
jmp 0x30067ba3
cmp ecx, 7
jne 0x30067d39
test edx, edx
jne 0x30067d70
movsx eax, word [0x301e60f6]
dec eax
push eax
push 0xf
push 0x41e
jmp 0x30067ba4
test edx, edx
je 0x30067d85
cmp ecx, 2
je 0x30067d70
cmp ecx, 6
je 0x30067d70
cmp ecx, 9
je 0x30067d70
cmp ecx, 0xa
je 0x30067d70
cmp ecx, 0xb
je 0x30067d70
cmp ecx, 0xc
je 0x30067d70
mov eax, dword [ebp + 8]
and ah, 3
cmp ax, 1
je 0x30067d70
cmp dword [ebp + 8], 0x41e
jne 0x30067d85
movsx eax, word [0x301e60f6]
dec eax
push eax
push 0xf
push 0x409
jmp 0x30067ba4
movsx eax, word [0x301e60f6]
dec eax
push eax
push 0xf
push dword [ebp + 8]
jmp 0x30067ba4
mov esi, dword [ebp + 0x28]
movzx edi, byte [esi]
inc esi
movzx eax, byte [esi]
inc esi
cmp dword [ebp + 8], 0
mov dword [ebp + 0x24], eax
je 0x30067dd8
cmp dword [ebp + 0x20], 0x5f
je 0x30067dd8
xor eax, eax
cmp word [0x301e60f0], 0xc
setge al
push eax
mov eax, dword [ebp + 0x2c]
push 0x22
push dword [ebp + 8]
sub eax, ebx
sar eax, 1
push eax
push ebx
call fcn.300f2fa2
lea ebx, [ebx + eax*2]
jmp 0x30067e34
cmp word [0x301e60f0], 0xc
jge 0x30067e0b
lea eax, [edi + edi]
lea ecx, [eax + ebx]
cmp ecx, dword [ebp + 0x2c]
mov dword [ebp + 0x20], ecx
ja 0x3006682e
mov ecx, dword [ebp + 0x2c]
sub ecx, ebx
sar ecx, 1
add ecx, ecx
push ecx
push ebx
push eax
push esi
call fcn.30011303
mov ebx, dword [ebp + 0x20]
jmp 0x30067e34
add eax, eax
lea ecx, [eax + ebx]
cmp ecx, dword [ebp + 0x2c]
mov dword [ebp + 0x20], ecx
ja 0x3006682e
mov ecx, dword [ebp + 0x2c]
sub ecx, ebx
sar ecx, 1
add ecx, ecx
push ecx
push ebx
push eax
lea eax, [esi + edi*2]
push eax
call fcn.30011303
mov ebx, dword [ebp + 0x20]
add edi, dword [ebp + 0x24]
lea eax, [esi + edi*2]
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x28], eax
jmp case.0x30065e74.50
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
movsx eax, word [0x301e60ea]
push ebx
push dword [0x301e60ec]
push eax
movsx eax, si
push eax
call fcn.30152b34
jmp 0x30067e7b
mov eax, dword [ebp + 0x2c]
sub eax, ebx
push 0
sar eax, 1
push eax
movsx eax, si
push ebx
push eax
call fcn.30152ae1
test eax, eax
jle 0x30067e8e
mov ecx, dword [ebp + 0x1028]
or dword [ecx + 0x64], 2
jmp 0x300679f7
mov edx, dword [0x301e56e4]
mov eax, dword [0x301e3f60]
cmp eax, 4
je 0x30067f3c
cmp dword [ebp - 0x14], 0
jne 0x30067f3c
mov eax, dword [ebp + 0x20]
cmp eax, 0x51
je 0x30067ec8
cmp eax, 0x59
je 0x30067ec8
cmp eax, 0x50
je 0x30067ec8
cmp eax, 0x58
je 0x30067ec8
movsx eax, word [edi]
jmp 0x30067ede
movsx eax, word [edi]
neg edx
sbb edx, edx
and dx, 0xfde1
add edx, 0x21f
add edx, eax
mov eax, edx
mov edx, dword [ebp + 0x1010]
mov ecx, ebx
sub ecx, dword [ebp + 0x100c]
sar ecx, 1
sub edx, ecx
push edx
push ebx
push eax
call fcn.30037720
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x20]
cmp eax, 0x51
je 0x30067f2d
cmp eax, 0x59
je 0x30067f2d
cmp eax, 0x50
je 0x30067f1e
cmp eax, 0x58
je 0x30067f1e
and dword [0x301e56dc], 0
jmp 0x30068024
mov dword [0x301e56dc], 2
jmp 0x30068024
mov dword [0x301e56dc], 4
jmp 0x30068024
cmp dword [ebp - 8], 7
jne 0x30067ffe
cmp eax, 4
je 0x30067ffe
mov eax, dword [ebp + 0x20]
cmp eax, 0x51
je 0x30067f7f
cmp eax, 0x59
je 0x30067f7f
cmp eax, 0x50
je 0x30067f7f
cmp eax, 0x58
je 0x30067f7f
cmp eax, 0x5a
je 0x30067f7f
cmp eax, 0x5b
je 0x30067f7f
cmp eax, 0x1c
je 0x30067f7f
cmp eax, 0x1b
je 0x30067f7f
movsx eax, word [edi]
jmp 0x30067f95
movsx eax, word [edi]
neg edx
sbb edx, edx
and dx, 0xfde1
add edx, 0x21f
add edx, eax
mov eax, edx
mov edx, dword [ebp + 0x1010]
mov ecx, ebx
sub ecx, dword [ebp + 0x100c]
sar ecx, 1
sub edx, ecx
push edx
push ebx
push eax
call fcn.30037720
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x20]
cmp eax, 0x51
je 0x30067ff2
cmp eax, 0x59
je 0x30067ff2
cmp eax, 0x5b
je 0x30067ff2
cmp eax, 0x1c
je 0x30067ff2
cmp eax, 0x50
je 0x30067fe6
cmp eax, 0x58
je 0x30067fe6
cmp eax, 0x5a
je 0x30067fe6
cmp eax, 0x1b
je 0x30067fe6
and dword [0x301e56dc], 0
jmp 0x3006801e
mov dword [0x301e56dc], 2
jmp 0x3006801e
mov dword [0x301e56dc], 4
jmp 0x3006801e
mov ecx, dword [ebp + 0x1010]
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
sub ecx, eax
movsx eax, word [edi]
push ecx
push ebx
push eax
call fcn.30037720
mov dword [ebp + 0x24], eax
cmp dword [ebp - 0x14], 0
jne 0x3006804d
mov eax, dword [ebp + 0x20]
cmp eax, 0x51
je 0x3006803b
cmp eax, 0x5b
je 0x3006803b
cmp eax, 0x50
je 0x3006803b
cmp eax, 0x5a
jne 0x3006804d
mov eax, dword [ebp + 0x2c]
push 0xd
sub eax, ebx
sar eax, 1
push eax
push 4
push ebx
call fcn.301016c4
mov esi, dword [ebp + 0x20]
cmp esi, 0x1b
je 0x30068096
cmp esi, 0x1c
je 0x30068096
cmp esi, 0x11
je 0x30068096
cmp esi, 0x12
je 0x30068096
cmp esi, 0xd
je 0x30068096
cmp esi, 0xe
je 0x30068096
cmp esi, 0x15
je 0x30068096
cmp esi, 0x16
je 0x30068096
cmp esi, 0x17
je 0x30068096
cmp esi, 0x18
je 0x30068096
cmp esi, 0x19
je 0x30068096
cmp esi, 0x1a
je 0x30068096
cmp esi, 0x20
je 0x30068096
cmp esi, 0x21
jne 0x300680a0
mov edi, dword [ebp + 0x1c]
cmp edi, 0x13
ja 0x300680a3
jmp 0x300680c6
mov edi, dword [ebp + 0x1c]
cmp esi, 0x51
je 0x300680c1
cmp esi, 0x59
je 0x300680c1
cmp esi, 0x50
je 0x300680c1
cmp esi, 0x58
je 0x300680c1
cmp esi, 0x5a
je 0x300680c1
cmp esi, 0x5b
jne 0x300680d8
cmp edi, 0x13
ja 0x300680d8
mov eax, dword [ebp + 0x2c]
sub eax, ebx
push edi
sar eax, 1
push eax
push dword [ebp + 0x24]
push ebx
call fcn.301016c4
cmp esi, 0x58
je 0x30068177
cmp esi, 0x50
je 0x30068177
cmp esi, 0x5a
je 0x30068177
cmp esi, 0x1b
jne 0x3006812b
lea eax, [ebx + 4]
mov cx, word [eax]
mov word [ebx], cx
mov cx, word [ebx + 6]
mov word [ebx + 2], cx
mov ebx, eax
cmp byte [0x301e4d00], 0
jne 0x30068122
cmp edi, 0x1b
jb case.0x30065e74.50
cmp edi, 0x27
ja 0x3006818a
mov dword [ebp + 0x24], 2
jmp 0x3006818a
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp + 0x30]
jge 0x30068172
lea esi, [ebx + 4]
cmp esi, dword [ebp + 0x2c]
ja 0x3006682e
cmp edi, 0x13
mov ax, word [ebx]
mov word [ebx + 2], ax
ja 0x30068169
push edi
push 1
push 1
lea eax, [ebp + 0x20]
push eax
mov dword [ebp + 0x20], 0x30
call fcn.301016c4
mov ax, word [ebp + 0x20]
mov word [ebx], ax
jmp 0x3006816e
mov word [ebx], 0x30
mov ebx, esi
jmp 0x3006810b
lea ebx, [ebx + eax*2]
jmp 0x3006818a
lea eax, [ebx + 4]
mov cx, word [eax]
mov word [ebx], cx
mov cx, word [ebx + 6]
mov word [ebx + 2], cx
mov ebx, eax
cmp edi, 0x1b
jb case.0x30065e74.50
cmp edi, 0x27
ja case.0x30065e74.50
mov eax, dword [ebp + 0x1c]
mov edi, dword [eax*4 + 0x300a3784]
mov eax, dword [ebp + 0x24]
lea esi, [eax + eax]
sub ebx, esi
cmp edi, 2
je 0x3006826b
cmp eax, 2
jle 0x300681c9
mov eax, dword [ebp + 0xc]
cmp word [eax], 0x64
jge 0x3006826b
mov eax, dword [ebp + 0xc]
movsx ecx, word [eax]
push 0x64
mov eax, ecx
cdq
pop esi
idiv esi
push 0xa
pop esi
push 0xa
mov eax, edx
cdq
idiv esi
mov esi, eax
mov eax, ecx
cdq
pop ecx
idiv ecx
test si, si
mov dword [ebp + 0x20], edx
je 0x30068226
cmp edi, 1
je 0x300681fc
cmp si, 1
jle 0x30068216
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
push dword [ebp + 0x1c]
movsx eax, si
push eax
call fcn.30100966
mov word [ebx], ax
inc ebx
inc ebx
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
push dword [ebp + 0x1c]
push 0xa
jmp 0x3006823a
cmp dword [ebp + 0x24], 2
jne 0x30068244
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
push dword [ebp + 0x1c]
push 0
call fcn.30100966
mov word [ebx], ax
inc ebx
inc ebx
cmp word [ebp + 0x20], 0
jg 0x30068250
test si, si
jne case.0x30065e74.50
cmp ebx, dword [ebp + 0x2c]
jae 0x3006682e
movsx eax, word [ebp + 0x20]
push dword [ebp + 0x1c]
push eax
call fcn.30100966
jmp 0x300675e2
push 5
lea eax, [ebp + 0xfd4]
push eax
push dword [ebp + 0x24]
push ebx
call fcn.30007ae4
add esi, ebx
cmp esi, dword [ebp + 0x2c]
ja 0x3006682e
xor esi, esi
cmp dword [ebp + 0x24], esi
jle case.0x30065e74.50
mov ax, word [ebp + esi*2 + 0xfd4]
push dword [ebp + 0x1c]
push eax
call fcn.30101562
mov word [ebx], ax
inc ebx
inc ebx
inc esi
cmp esi, dword [ebp + 0x24]
jl 0x3006828f
mov eax, dword [ebp - 0x80]
cmp dword [ebp + 0x28], eax
jb 0x30065e43
xor edi, edi
cmp dword [ebp - 0x2c], edi
je 0x300686a1
cmp ebx, dword [ebp + 0x2c]
jae 0x300686a1
cmp dword [ebp - 0x40], edi
je 0x300682d7
mov eax, 0xff
jmp 0x30068317
cmp dword [ebp + 0x101c], 0x7fff
jne 0x300682e8
push 0xb
pop eax
jmp 0x30068317
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
push eax
push dword [ebp + 0x100c]
call fcn.3003e906
mov ecx, dword [ebp + 0x101c]
sub ecx, eax
mov eax, ecx
cdq
idiv dword [0x301df130]
push eax
push 0xb
call fcn.30055f82
cmp dword [ebp + 0x1014], 0x80000100
mov esi, 0x401
jne 0x30068338
push eax
push esi
lea eax, [ebp + 0x7d0]
push eax
call fcn.3002b917
jmp 0x30068348
push edi
push edi
push eax
push esi
lea eax, [ebp + 0x7d0]
push eax
call fcn.3002b948
lea ecx, [ebp + 0x7d0]
sub eax, ecx
sar eax, 1
cmp dword [ebp - 0x40], edi
mov dword [ebp + 0x30], eax
je 0x3006837f
push 0x45
push eax
mov eax, ecx
push eax
call dword [sym.imp.MSO.DLL_Ordinal_834]
test eax, eax
je 0x3006837f
push dword [ebp + 8]
mov dword [ebp - 0x40], edi
push dword [ebp - 0x68]
push dword [ebp - 0x5c]
push edi
call fcn.3010098a
mov dword [ebp + 0x1c], eax
cmp dword [ebp + 0x1c], edi
je 0x300683a3
push dword [ebp + 0x1c]
lea eax, [ebp + 0x7d0]
push esi
push dword [ebp + 0x30]
push eax
call fcn.301016c4
cmp eax, 0xffffffff
mov dword [ebp + 0x30], eax
je 0x3006682e
cmp dword [ebp - 0x28], edi
jne 0x300683b5
call fcn.3000fd7a
test eax, eax
je 0x30065d1f
mov esi, dword [ebp + 0x1028]
cmp dword [esi + 0x3c], edi
je 0x30068632
and dword [ebp + 0x1024], 0
mov ecx, ebx
sub ecx, dword [ebp + 0x100c]
mov eax, ebx
sub eax, dword [ebp - 0x2c]
sar ecx, 1
sar eax, 1
lea edi, [ecx - 1]
mov dword [ebp + 0x1010], eax
je 0x30068632
mov edx, edi
sub edx, ecx
lea eax, [eax + edx + 1]
mov dword [ebp + 0x1018], eax
mov eax, dword [ebp + 0x30]
add eax, edi
mov dword [ebp + 0x1010], eax
mov eax, edi
push 8
cdq
pop ecx
idiv ecx
cmp eax, 0x20
jae 0x30068428
movzx eax, byte [eax + esi + 0x40]
xor edx, edx
mov ecx, edi
and ecx, 7
inc edx
shl edx, cl
and edx, eax
mov dword [ebp + 0x1024], edx
push edi
push esi
call fcn.30100b1b
test eax, eax
je 0x3006682e
cmp dword [ebp + 0x1024], 0
push dword [ebp + 0x1010]
push esi
je 0x30068612
call fcn.30100ae9
jmp 0x30068617
push ecx
push 0xff
lea eax, [ebp + 0x5cc]
push eax
call fcn.30100a68
lea eax, [ebp + 0x5cc]
push eax
call fcn.3001225f
mov ecx, dword [0x301e491c]
mov ax, word [ecx + 6]
mov ebx, 0x80
mov edi, eax
shr edi, 7
or eax, ebx
and edi, 1
mov word [ecx + 6], ax
cmp byte [0x301e4d00], 0
je 0x300684a4
push 8
call fcn.30050cc0
xor esi, esi
jmp 0x300684ba
xor esi, esi
cmp dword [0x301e4040], esi
je 0x300684b3
mov dword [ebp - 0x3c], esi
jmp 0x300684c1
push 8
call fcn.30050cc0
mov dword [ebp - 0x3c], 1
push esi
push esi
lea eax, [ebp + 0x5cc]
push eax
call fcn.300f8924
push eax
call fcn.3002ea6a
cmp dword [ebp - 0x3c], esi
mov dword [ebp + 0x1018], eax
je 0x300684e7
push 8
call fcn.30050cc0
mov eax, dword [0x301e491c]
mov ecx, edi
shl ecx, 7
xor cl, byte [eax + 6]
and cx, bx
xor word [eax + 6], cx
cmp dword [0x301e48a8], esi
jne 0x30068507
xor eax, eax
jmp 0x3006850f
mov eax, dword [0x301e48ac]
mov eax, dword [eax + 0x24]
cmp dword [ebp - 0x28], esi
jne 0x3006851c
cmp eax, esi
je 0x3006682e
mov eax, dword [ebp - 0x7c]
mov ebx, dword [ebp + 0x100c]
mov dword [ebp + 8], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 8], esi
mov dword [ebp + 0x1c], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x44], esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 4], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x18], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x48], esi
mov dword [ebp + 4], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x38], esi
mov dword [ebp], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [0x301df314], esi
mov dword [ebp + 0x2c], eax
xor esi, esi
mov edi, eax
jmp 0x3002b668
cmp ebx, edi
jae 0x3006682e
cmp dword [ebp + 0x101c], 0x7fff
mov word [ebx], 0x2d
je 0x300685b7
push 0x2d
call fcn.3000b1ab
sub dword [ebp + 0x101c], eax
lea eax, [ebx + 2]
mov dword [ebp - 0x20], eax
jmp 0x3002b6c3
mov dword [ebp + 0x24], 0xb
jmp 0x3002b6eb
push eax
push dword [ebp + 0x1028]
push dword [ebp - 0x20]
call fcn.3002b917
mov edi, eax
sub edi, ebx
sar edi, 1
jmp 0x3002b71b
mov ax, word [ebx]
push eax
call fcn.301515d4
movzx eax, ax
jmp 0x3002b72b
cmp dword [ebp + 0x100c], esi
jne 0x3002b734
xor edi, edi
mov word [ebx], 0x30
inc edi
jmp 0x3002b734
call fcn.30100b1b
test eax, eax
je 0x3006682e
dec edi
dec dword [ebp + 0x1010]
dec dword [ebp + 0x1018]
jne 0x30068404
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub edi, eax
sar edi, 1
mov edx, edi
sub edx, ecx
lea ecx, [eax + ecx*2]
push edx
push ecx
mov ecx, ebx
sub ecx, eax
sar ecx, 1
push ecx
push eax
call fcn.30007ae4
push edi
push dword [ebp - 0x2c]
lea eax, [ebp + 0x7d0]
push dword [ebp + 0x30]
push eax
call fcn.30007ae4
sub eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x3c]
sar eax, 1
add eax, eax
add ebx, eax
test edi, edi
jne 0x30068687
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
jmp 0x3002b736
cmp edi, dword [ebp - 0x2c]
ja 0x30068694
jne 0x300686aa
cmp dword [ebp - 0x18], 0
jge 0x300686aa
add edi, eax
cmp dword [ebp - 0x18], 0
jge 0x300686aa
neg dword [ebp - 0x18]
jmp 0x300686aa
mov esi, dword [ebp + 0x1028]
mov edi, dword [ebp - 0x3c]
test edi, edi
je 0x300688c7
cmp ebx, dword [ebp + 0x2c]
jae 0x300688c7
mov eax, edi
sub eax, dword [ebp + 0x100c]
mov dword [esi + 8], 1
mov dword [ebp + 0x1024], eax
sar eax, 1
cmp dword [ebp + 0x101c], 0x7fff
mov dword [esi], eax
je 0x300688c7
test byte [ebp + 0x1020], 0x10
jne 0x300688c7
mov eax, ebx
sub eax, dword [ebp + 0x100c]
sar eax, 1
push eax
push dword [ebp + 0x100c]
call fcn.3003e906
mov ecx, dword [ebp + 0x101c]
sub ecx, eax
mov eax, ecx
cdq
idiv dword [ebp - 0x54]
push eax
mov eax, dword [ebp + 0x2c]
sub eax, ebx
sar eax, 1
push eax
call fcn.30055f82
test eax, eax
mov dword [ebp + 0x30], eax
jle 0x300688c7
mov ecx, eax
mov eax, dword [ebp + 0x2c]
add dword [esi], ecx
sub eax, edi
sar eax, 1
mov dword [ebp + 0x1010], eax
sub eax, ecx
push eax
lea edx, [ecx + ecx]
mov eax, ebx
add edx, edi
sub eax, edi
push edx
sar eax, 1
push eax
push edi
call fcn.30007ae4
push dword [ebp + 0x30]
push edi
push dword [ebp - 0x18]
call fcn.3000e1b7
mov eax, dword [ebp + 0x30]
add eax, eax
add ebx, eax
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x30068777
mov ecx, dword [ebp + 0x30]
add eax, ecx
mov dword [esi + 0x3c], eax
test byte [0x301e4ce8], 0x20
je 0x30068820
cmp ebx, dword [ebp + 0x2c]
jae 0x30068820
inc dword [esi]
mov ecx, dword [ebp + 0x1010]
dec ecx
push ecx
lea eax, [edi + 2]
push eax
mov eax, ebx
sub eax, edi
sar eax, 1
push eax
push edi
call fcn.30007ae4
push 1
push edi
push dword [ebp - 0x18]
call fcn.3000e1b7
mov eax, dword [esi + 0x3c]
inc ebx
inc ebx
test eax, eax
je 0x300687c0
inc eax
mov dword [esi + 0x3c], eax
mov eax, ebx
sub eax, edi
mov dword [ebp + 0x1020], eax
mov ecx, dword [ebp + 0x1020]
mov eax, dword [ebp + 0x1024]
add eax, ecx
sar eax, 1
push eax
push dword [ebp + 0x100c]
call fcn.3003e906
cmp eax, dword [ebp + 0x101c]
jle 0x30068820
push dword [ebp + 0x1010]
mov eax, dword [ebp + 0x1020]
dec dword [esi]
sar eax, 1
push edi
dec eax
push eax
lea eax, [edi + 2]
push eax
call fcn.30007ae4
mov eax, dword [esi + 0x3c]
sub dword [ebp + 0x1020], 2
dec ebx
dec ebx
test eax, eax
je 0x300687ca
dec eax
mov dword [esi + 0x3c], eax
jmp 0x300687ca
cmp dword [0x301e451c], 0
jne 0x30068836
test byte [0x301df16c], 2
je 0x300688c7
mov eax, ebx
sub eax, dword [ebp + 0x100c]
mov dword [ebp + 0x1020], eax
sar eax, 1
push eax
push dword [ebp + 0x100c]
call fcn.3003e906
cmp eax, dword [ebp + 0x101c]
jle 0x300688c7
mov eax, dword [ebp + 0x1020]
mov dword [ebp + 0x1020], eax
mov eax, dword [ebp + 0x100c]
sub eax, edi
mov dword [ebp + 0x1024], eax
sub dword [ebp + 0x1020], 2
mov eax, dword [esi + 0x3c]
dec ebx
dec ebx
dec dword [esi]
test eax, eax
je 0x3006888a
dec eax
mov dword [esi + 0x3c], eax
push dword [ebp + 0x1010]
mov ecx, dword [ebp + 0x1020]
mov eax, dword [ebp + 0x1024]
add eax, ecx
push edi
sar eax, 1
push eax
lea eax, [edi + 2]
push eax
call fcn.30007ae4
mov eax, dword [ebp + 0x1020]
sar eax, 1
push eax
push dword [ebp + 0x100c]
call fcn.3003e906
cmp eax, dword [ebp + 0x101c]
jg 0x30068874
sub ebx, dword [ebp + 0x100c]
mov eax, ebx
sar eax, 1
cmp dword [ebp + 0x1014], eax
je 0x3002b736
mov ecx, dword [ebp + 0x1028]
and dword [ecx + 0x20], 0
jmp 0x3002b736