Function at 0x1003a780
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x148
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x9c], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xfc], eax
xor eax, eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0x80], eax
xorps xmm0, xmm0
movups xmmword [ebp - 0x90], xmm0
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x1003a85a
mov dword [ebp - 0xe4], edx
mov ecx, dword [edx]
cmp ecx, 0x41
jge 0x1003b649
movzx eax, word [ebp + 0x18]
mov dword [ebp - 0xa4], eax
movzx edx, ax
xor eax, eax
inc eax
mov dword [ebp - 0xac], edx
test dl, 0x20
cmovne ecx, eax
mov dword [ebp - 0x12c], ecx
mov edi, ecx
shl edi, 5
lea esi, [edi + edi*2]
add esi, 0x2ff
and esi, 0xfffffff8
lea edx, [esi + 0x50]
mov eax, dword [ebp - 0xfc]
movzx eax, word [eax + 0x12c]
cmp edx, eax
ja 0x1003a86d
cmp edx, 0x80
ja 0x1003a899
mov ebx, dword [ebp - 0xfc]
mov eax, dword [ebx + 0x150]
test eax, eax
je 0x1003a88b
mov dword [ebp - 0x94], eax
mov eax, dword [eax]
mov dword [ebx + 0x150], eax
inc dword [ebx + 0x138]
jmp 0x1003a8d3
xor ecx, ecx
cmp dword [eax], 0x40
cmovl ecx, eax
mov dword [ebp - 0xc4], ecx
jmp 0x1003a7d4
mov ebx, dword [ebp - 0xfc]
cmp dword [ebx + 0x128], 0
je 0x1003b31f
cmp byte [ebx + 0x57], 0
je 0x1003a8c1
jmp 0x1003e5fd
mov eax, dword [ebx + 0x14c]
test eax, eax
jne 0x1003b19d
mov ebx, dword [ebp - 0xfc]
mov eax, dword [ebx + 0x148]
test eax, eax
jne 0x1003af37
mov eax, dword [ebx + 0x144]
test eax, eax
jne 0x1003b29d
inc dword [ebx + 0x140]
mov ecx, ebx
push 0
call fcn.10137840
add esp, 4
mov dword [ebp - 0x94], eax
cmp byte [ebx + 0x57], 0
jne 0x1003b663
mov edx, edi
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x94]
mov dword [edi], ecx
mov eax, dword [ebp - 0xe4]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0xc4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ebx
xor eax, eax
dec eax
mov dword [edi + 0x18], eax
mov dword [ebp - 0xf8], eax
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x12c]
mov byte [edi + 0x2c], al
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
movzx eax, word [ebp + 0x18]
mov word [edi + 0x28], ax
mov eax, dword [ebp + 0x1c]
mov word [edi + 0x2a], ax
mov eax, dword [ecx + 0x8c]
mov dword [edi + 0x24], eax
mov ecx, dword [ebp + 0x14]
lea eax, [edx + edx*2]
mov dword [edi + 0x10], ecx
xorps xmm0, xmm0
movups xmmword [edi + 0x2d], xmm0
movups xmmword [edi + 0x3d], xmm0
xor ebx, ebx
mov dword [edi + 0x4c], ebx
add eax, 0x50
lea ecx, [edi + 0x2f8]
push eax
push ebx
mov dword [ebp - 0xb0], ecx
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [edi + 0x1f4], ebx
mov dword [edi + 0x1f8], 0xffffff9d
mov dword [ebp - 0x90], edi
lea ecx, [edi + 0x50]
mov dword [ebp - 0x8c], ecx
lea eax, [edi + esi]
mov dword [ebp - 0x88], eax
lea eax, [edi + esi + 0x40]
mov dword [eax - 8], eax
mov word [eax - 0x10], 0
mov word [eax - 0xc], 3
mov dword [eax - 0x14], ebx
mov dword [edi + 0x50], edi
mov byte [edi + 0x59], 0
mov dword [edi + 0x54], ebx
mov dword [edi + 0x5c], ebx
mov dword [edi + 0x64], ebx
mov dword [edi + 0x60], 8
lea eax, [edi + 0x70]
mov dword [edi + 0x68], eax
mov dword [ebp - 0x138], ecx
mov edx, dword [ebp + 8]
push 0x2c
call fcn.100405a0
add esp, 4
cmp dword [ebp - 0x12c], 0
je 0x1003af02
lea eax, [ebx + ebx*8]
mov esi, dword [ebp - 0xe4]
mov ecx, dword [esi + eax*8 + 0x34]
mov dword [ebp - 0xd0], ecx
mov edi, dword [ebp - 0x94]
mov ecx, dword [edi + 0x1f4]
lea edx, [ecx + 1]
mov dword [edi + 0x1f4], edx
mov edx, dword [ebp - 0xd0]
mov dword [edi + ecx*4 + 0x1f8], edx
test byte [esi + eax*8 + 0x30], 4
jne 0x1003b3df
inc ebx
cmp ebx, dword [esi]
jl 0x1003a9f0
mov eax, dword [ebp - 0x94]
mov esi, dword [eax + 0x5c]
test esi, esi
jle 0x1003aa61
inc esi
lea eax, [esi - 2]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x138]
push eax
call fcn.10046650
add esp, 4
dec esi
cmp esi, 1
ja 0x1003aa43
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x1003aa72
cmp dword [edx + 0x3c], 0
jne 0x1003aeb0
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x24], 0
jne 0x1003e5d4
mov eax, dword [ebp - 0x8c]
cmp dword [eax + 0x14], 0
jle 0x1003aab9
xor edi, edi
xor ebx, ebx
mov esi, dword [eax + 0x18]
test byte [esi + edi + 0xa], 2
jne 0x1003aaaa
mov eax, dword [esi + edi + 0x28]
or eax, dword [esi + edi + 0x2c]
je 0x1003b232
inc ebx
mov eax, dword [ebp - 0x8c]
add edi, 0x30
cmp ebx, dword [eax + 0x14]
jl 0x1003aa92
bt dword [ebp - 0xac], 8
jb 0x1003af4a
cmp dword [ebp - 0x12c], 1
jne 0x1003ac9b
mov edi, dword [ebp - 0x90]
test byte [edi + 0x28], 0x20
jne 0x1003ac9b
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x18]
cmp byte [esi + 0x2b], 1
je 0x1003ac9b
test byte [eax + 0x30], 3
jne 0x1003ac9b
mov dword [ebp - 0xa0], eax
mov eax, dword [eax + 0x34]
lea edx, [edi + 0x50]
mov ebx, dword [ebp - 0x88]
mov dword [ebx + 0x2c], 0
mov word [ebx + 0x32], 0
lea ecx, [ebp - 0x70]
mov dword [ecx], edx
mov dword [ebp - 0xd0], edx
mov dword [ecx + 4], edx
mov byte [ecx + 0x18], 0
movaps xmm0, xmmword [0x101af3d0]
movups xmmword [ecx + 8], xmm0
mov dword [ebp - 0xac], eax
mov dword [ecx + 0x1c], eax
mov word [ecx + 0x19], 0x101
mov word [ecx + 0x48], 0xffff
call fcn.101500e0
test eax, eax
mov dword [ebp - 0xc4], edi
jne 0x10040577
mov edi, dword [esi + 8]
test edi, edi
je 0x1003ac8b
cmp byte [edi + 0x36], 0
jne 0x1003ab78
mov edi, dword [edi + 0x14]
jmp 0x1003ab65
cmp dword [edi + 0x24], 0
jne 0x1003ab73
movzx eax, word [edi + 0x32]
cmp ax, 3
ja 0x1003ab73
test ax, ax
je 0x1003aea9
mov al, byte [edi + 0x38]
and al, 8
shr al, 3
movzx ecx, al
shl ecx, 7
or ecx, 2
xor esi, esi
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x58], 0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x54], eax
mov word [ebp - 0x57], 0x101
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
movzx eax, word [eax + esi*2]
cmp ax, word [ecx + 0x20]
je 0x1003ac3d
test ax, ax
js 0x1003b1b6
movsx edx, ax
mov ecx, dword [ecx + 4]
shl edx, 4
mov cl, byte [ecx + edx + 8]
mov byte [ebp - 0x58], cl
mov ecx, dword [edi + 0x20]
mov ecx, dword [ecx + esi*4]
mov dword [ebp - 0x68], ecx
mov word [ebp - 0x28], ax
jmp 0x1003b3d2
test eax, eax
je 0x1003ac42
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x1003b3d2
mov ecx, dword [ebx + 0x38]
mov dword [ecx + esi*4], eax
inc esi
movzx eax, word [edi + 0x32]
cmp esi, eax
mov ecx, dword [ebp - 0xd4]
jb 0x1003abaa
jmp 0x1003ac42
xor eax, eax
dec eax
jmp 0x1003ac09
movzx eax, word [edi + 0x32]
cmp esi, eax
jne 0x1003ab73
mov dword [ebx + 0x2c], 0x1201
test byte [edi + 0x38], 0x20
jne 0x1003ac71
mov eax, dword [edi + 0x44]
mov edx, dword [ebp - 0xa0]
and eax, dword [edx + 0x44]
mov ecx, dword [edi + 0x40]
and ecx, dword [edx + 0x40]
or ecx, eax
jne 0x1003ac78
mov dword [ebx + 0x2c], 0x1241
mov word [ebx + 0x30], si
mov word [ebx + 0x18], si
mov dword [ebx + 0x20], edi
mov ax, 0x27
mov word [ebx + 0x14], ax
cmp dword [ebx + 0x2c], 0
mov ecx, dword [ebp - 0xc4]
jne 0x1003ae56
mov ecx, dword [ebp - 0x90]
mov esi, dword [ebp - 0x88]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov dword [ebp - 0xd4], ecx
movzx ecx, byte [ecx + 0x2c]
lea ecx, [ecx + ecx*8]
lea ecx, [ebx + ecx*8]
add ecx, 8
add ebx, 8
mov eax, dword [eax]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0x7c], 0x4e20
xor edi, edi
mov dword [ebp - 0x108], ecx
cmp ebx, ecx
jae 0x1003b81a
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xa0], 0
xor ecx, ecx
xor edx, edx
xor eax, eax
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xdc], eax
mov byte [esi + 0x10], al
add dword [ebp - 0x7c], 0x3e8
mov eax, dword [ebx + 0x2c]
xor edx, edx
inc edx
mov edi, 0
mov ecx, dword [ebp - 0xd4]
cmp dword [ecx + 0x1f8], eax
jne 0x1003aec0
mov dword [esi + 8], edx
mov dword [esi + 0xc], edi
movzx eax, byte [ebx + 0x24]
cmp dword [ebp - 0xa0], 0
jne 0x1003b1f3
mov ecx, eax
and cl, 0x62
jne 0x1003b1f3
xor eax, eax
mov ecx, dword [ebp - 0xd0]
test ecx, ecx
setne al
mov edi, dword [ebp - 0xac]
cmove edi, ecx
mov edx, dword [ebp - 0xc4]
cmove edx, ecx
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x2b], 1
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xac], edi
je 0x1003b686
lea ecx, [ebp - 0x90]
push edi
call fcn.10042e70
add esp, 4
mov edi, eax
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xc0], 0
test edi, edi
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xb8]
jne 0x1003b2e4
mov eax, dword [ebp - 0x8c]
cmp byte [eax + 9], 0
jne 0x1003b2b0
or ecx, dword [esi + 8]
or edx, dword [esi + 0xc]
mov eax, dword [ebp - 0xe8]
cmp byte [eax + 0x57], 0
jne 0x1003b818
mov eax, dword [ebp - 0xdc]
inc eax
add ebx, 0x48
xor edi, edi
cmp ebx, dword [ebp - 0x108]
jb 0x1003ad0f
jmp 0x1003b81a
mov edx, dword [ebp - 0xd4]
cmp dword [edx + ecx*4 + 0x1fc], eax
je 0x1003aee3
inc ecx
xor edx, edx
mov edi, 0
cmp dword [ebp - 0xc0], ecx
jne 0x1003ae2e
jmp 0x1003ad48
xor eax, eax
inc eax
mov word [ebx + 0x16], ax
mov dword [ecx + 0x348], ebx
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 1
mov edx, dword [ebp - 0xac]
mov dword [ecx + 0x2fc], edx
mov word [ecx + 0x34], ax
mov eax, dword [ecx + 8]
test eax, eax
jne 0x1003b1e9
test byte [ecx + 0x29], 1
jne 0x1003b194
cmp byte [ebp - 0x57], 2
jb 0x1003c9be
or byte [ebx + 0x2e], 0x20
jmp 0x1003c9be
xor esi, esi
jmp 0x1003ac42
mov ecx, dword [ebp - 0x138]
call fcn.10041ca0
jmp 0x1003aa72
mov ecx, dword [ebp - 0xd4]
mov ecx, dword [ecx + 0x1f4]
cmp ecx, 2
jl 0x1003fd3b
dec ecx
mov dword [ebp - 0xc0], ecx
xor ecx, ecx
jmp 0x1003ae2e
inc cl
xor edi, edi
xor edx, edx
inc edx
shld edi, edx, cl
shl edx, cl
test cl, 0x20
cmovne edi, edx
mov eax, 0
cmovne edx, eax
jmp 0x1003ad48
cmp dword [ebp - 0xc4], 0
jne 0x1003fd4d
bt dword [ebp - 0xac], 8
jb 0x1003fd65
push str.SCAN_CONSTANT_ROW
push 0
push dword [ebp - 0x9c]
call fcn.1002faf0
add esp, 0xc
jmp 0x1003aa35
mov dword [ebp - 0x94], eax
mov eax, dword [eax]
mov dword [ebx + 0x148], eax
jmp 0x1003a852
mov eax, dword [ebp - 0xfc]
test byte [eax + 0x50], 0x10
jne 0x1003fd91
mov eax, dword [ebp - 0xe4]
cmp dword [eax], 1
jne 0x1003b3b0
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x34]
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
jle 0x1003afcd
xor edx, edx
lea esi, [edx + edx*4]
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + esi*4 + 8]
test esi, esi
je 0x1003afc8
mov edi, dword [esi + 4]
test edi, 0x82000
jne 0x1003fbd5
movzx edi, byte [esi]
cmp edi, 0xa7
jne 0x1003fbe7
mov edi, dword [ebp - 0xac]
cmp dword [esi + 0x1c], edi
jne 0x1003afc8
cmp word [esi + 0x20], 0
js 0x1003b185
inc edx
cmp edx, ecx
jne 0x1003af86
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x1003b3b0
xor esi, esi
dec esi
lea edi, [ebp - 0x70]
cmp byte [ebx + 0x36], 0
jne 0x1003aff0
mov ebx, dword [ebx + 0x14]
test ebx, ebx
jne 0x1003afde
jmp 0x1003b3b0
cmp dword [ebx + 0x24], 0
jne 0x1003afe4
xor edx, edx
cmp word [ebx + 0x32], 0
je 0x1003b179
xor edx, edx
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x58], 0
movaps xmm0, xmmword [0x101af3c0]
movups xmmword [ebp - 0x68], xmm0
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x54], eax
mov word [ebp - 0x57], 0x101
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
movzx eax, word [eax + edx*2]
cmp ax, word [ecx + 0x20]
je 0x1003b172
test ax, ax
js 0x1003b377
movsx edx, ax
mov ecx, dword [ecx + 4]
shl edx, 4
mov cl, byte [ecx + edx + 8]
mov byte [ebp - 0x58], cl
mov ecx, dword [ebx + 0x20]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x68], ecx
mov word [ebp - 0x28], ax
mov ecx, edi
call fcn.101500e0
test eax, eax
mov edx, dword [ebp - 0xd0]
jne 0x1003b32a
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0xd8], eax
test eax, eax
jle 0x1003fdbe
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0xa0], eax
xor eax, eax
mov dword [ebp - 0xd4], eax
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
test edx, edx
je 0x1003fb18
mov ecx, edx
mov esi, dword [ecx + 4]
test esi, 0x82000
jne 0x1003fdc6
movzx esi, byte [ecx]
cmp esi, 0xa7
jne 0x1003fdd8
movzx esi, word [ecx + 0x20]
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0xd0]
cmp si, word [eax + edi*2]
jne 0x1003fb18
mov eax, dword [ebp - 0xac]
cmp dword [ecx + 0x1c], eax
mov edi, dword [ebp - 0xa0]
jne 0x1003fb18
mov ecx, dword [ebp - 0x9c]
call fcn.1002f260
test eax, eax
je 0x1003fde9
mov esi, dword [eax]
xor ecx, ecx
movzx edx, byte [esi + ecx]
movzx eax, byte [edi + ecx]
cmp dl, al
jne 0x1003fafb
test edx, edx
je 0x1003b13d
inc ecx
jmp 0x1003b126
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xd0]
movzx eax, word [eax + edx*2]
test ax, ax
js 0x1003fdf9
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 4]
shl eax, 4
mov ecx, dword [ecx + eax + 4]
and ecx, 0xf
xor esi, esi
dec esi
lea edi, [ebp - 0x70]
test ecx, ecx
je 0x1003b179
jmp 0x1003b365
mov eax, esi
jmp 0x1003b071
movzx eax, word [ebx + 0x32]
cmp edx, eax
jne 0x1003afe4
mov eax, dword [ebp - 0x94]
mov byte [eax + 0x2f], 1
jmp 0x1003aac7
mov byte [ecx + 0x2f], 1
jmp 0x1003ae96
mov dword [ebp - 0x94], eax
mov eax, dword [eax]
mov ebx, dword [ebp - 0xfc]
mov dword [ebx + 0x14c], eax
jmp 0x1003a852
cmp ax, 0xfffe
jne 0x1003ac09
mov eax, dword [edi + 0x28]
lea ecx, [esi + esi*4]
mov eax, dword [eax + ecx*4 + 8]
lea ecx, [ebp - 0x70]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x20]
mov eax, dword [eax + esi*4]
mov dword [ecx + 8], eax
mov word [ecx + 0x48], 0xfffe
call fcn.101753f0
jmp 0x1003ac12
mov al, byte [eax]
mov byte [ecx + 0x2d], al
jmp 0x1003ae8c
test al, 0x40
mov ecx, 1
mov edx, dword [ebp - 0xd0]
cmovne edx, ecx
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp - 0xc4]
or edx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xac]
or edi, dword [ebp - 0xb8]
shr eax, 4
and eax, 1
mov dword [ebp - 0xa0], eax
jmp 0x1003ad99
cmp dword [ebp - 0x12c], 0
je 0x1003b277
mov edx, dword [esi + edi]
xorps xmm0, xmm0
movups xmmword [ebp - 0x64], xmm0
movups xmmword [ebp - 0x70], xmm0
mov word [ebp - 0x5c], 1
mov dword [ebp - 0x6c], 0x10075a90
mov dword [ebp - 0x68], 0x10075420
test edx, edx
je 0x1003b277
lea ecx, [ebp - 0x70]
call fcn.1014d480
lea eax, [ebp - 0x70]
cmp word [eax + 0x14], 0
je 0x1003aaaa
push 0x10
mov eax, dword [ebp - 0x94]
push dword [eax + 0x20]
push dword [esi + edi]
push dword [ebp - 0x9c]
call fcn.10040dd0
add esp, 0x10
or byte [esi + edi + 0xa], 4
jmp 0x1003aaaa
mov dword [ebp - 0x94], eax
mov eax, dword [eax]
mov dword [ebx + 0x144], eax
jmp 0x1003a852
lea ecx, [ebp - 0x90]
mov edx, dword [ebp - 0xc4]
push dword [ebp - 0xc0]
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
call fcn.1005d110
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xd8]
add esp, 0xc
mov edi, eax
or ecx, dword [esi + 8]
or edx, dword [esi + 0xc]
test edi, edi
je 0x1003ae01
cmp edi, 0x65
jne 0x1003b81a
push str.abbreviated_query_algorithm_search
push 0x1c
mov dword [ebp - 0xd8], ecx
mov edi, edx
call sym.nss3.dll_sqlite3_log
mov edx, edi
mov ecx, dword [ebp - 0xd8]
add esp, 8
jmp 0x1003ae11
inc dword [ebx + 0x13c]
jmp 0x1003a8c1
mov dword [ebp - 0xa0], 0
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x1003b347
test byte [eax + 0xc], 2
jne 0x1003b365
jmp 0x100402b6
mov ecx, edi
call fcn.101500e0
test eax, eax
mov edx, dword [ebp - 0xd0]
jne 0x1003b334
cmp dword [ebp - 0xa0], 0
je 0x1003b08a
inc edx
movzx eax, word [ebx + 0x32]
cmp edx, eax
jb 0x1003b005
jmp 0x1003b179
cmp ax, 0xfffe
jne 0x1003b071
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp - 0xd0]
lea ecx, [edx + edx*4]
mov eax, dword [eax + ecx*4 + 8]
lea ecx, [ebp - 0x70]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edx*4]
mov dword [ecx + 8], eax
mov word [ecx + 0x48], 0xfffe
call fcn.101753f0
jmp 0x1003b07c
cmp dword [ebp - 0xc4], 0
jne 0x1003aac7
mov eax, dword [ebp - 0x94]
or byte [eax + 0x28], 0x80
mov ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
jmp 0x1003aac7
lea ecx, [ebp - 0x70]
call fcn.101500e0
jmp 0x1003ac12
mov ecx, dword [esi + eax*8 + 0x48]
mov dword [ebp - 0xd4], ecx
test ecx, ecx
je 0x1003aa30
mov ecx, dword [ebp - 0xd4]
cmp dword [ecx], 0
jle 0x1003aa30
lea ecx, [esi + eax*8]
add ecx, 0x34
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ecx - 0x1c]
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x108], eax
mov dword [ebp - 0xb8], ebx
mov eax, dword [ebp - 0xa0]
movsx eax, word [eax + 0x22]
cmp dword [ebp - 0xd0], eax
jge 0x1003f41b
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ecx + 4]
mov edx, dword [ebp - 0xd0]
mov edi, edx
shl edi, 0x10
shl edx, 4
add ecx, edx
add ecx, 0xe
test byte [ecx], 2
jne 0x1003b48b
mov edx, dword [ebp - 0xd0]
inc edx
add edi, 0x10000
add ecx, 0x10
mov dword [ebp - 0xd0], edx
cmp eax, edx
jne 0x1003b467
jmp 0x1003f41b
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax]
mov edx, 0x34
push 0
call fcn.10157570
add esp, 4
mov dword [ebp - 0xe8], eax
test eax, eax
mov esi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xb8]
je 0x1003aa30
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xe8]
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x20], xmm0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x30], 0
mov byte [ecx], 0xa7
mov word [ecx + 0x22], 0xffff
mov dword [ecx + 0x18], 1
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0xd0]
mov word [ecx + 0x20], ax
mov eax, dword [ebp - 0xa0]
mov dword [ecx + 0x2c], eax
sar edi, 0x10
test byte [eax + 0x1c], 0x60
je 0x1003b551
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 4]
mov ecx, edi
shl ecx, 4
test byte [eax + ecx + 0xe], 0x60
je 0x1003b551
mov eax, dword [ebp - 0xa0]
movzx ecx, word [eax + 0x22]
xor edi, edi
dec edi
mov esi, edi
shl esi, cl
xor edx, edx
test cl, 0x20
mov eax, edi
cmovne eax, esi
cmove edx, esi
xor edx, edi
xor eax, edi
cmp cx, 0x40
cmovge eax, edi
cmovge edx, edi
jmp 0x1003b571
cmp edi, 0x3f
mov ecx, 0x3f
cmovl ecx, edi
xor eax, eax
xor edx, edx
inc edx
shld eax, edx, cl
xor esi, esi
shl edx, cl
test cl, 0x20
cmovne eax, edx
cmovne edx, esi
mov ecx, dword [ebp - 0xe4]
mov esi, dword [ebp - 0x108]
or dword [ecx + esi*8 + 0x40], edx
or dword [ecx + esi*8 + 0x44], eax
mov eax, dword [ebp - 0xd8]
lea eax, [eax + eax*4]
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx + eax*4 + 8]
xor edi, edi
mov eax, 0
test edx, edx
je 0x1003b5b7
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax]
xor eax, eax
push eax
push eax
call fcn.10001810
add esp, 8
inc dword [ebp - 0xd0]
mov esi, dword [ebp - 0x9c]
mov ecx, esi
mov edx, 0xae
push edi
push eax
call fcn.10016a00
add esp, 8
mov ecx, esi
mov edx, 0x35
push eax
push dword [ebp - 0xe8]
call fcn.10016a00
add esp, 8
mov esi, eax
mov ecx, dword [ebp - 0xdc]
mov al, byte [ecx - 8]
and al, 0x58
cmp al, 1
adc edi, 1
mov edx, dword [ecx]
mov ecx, esi
push edi
call fcn.10003da0
add esp, 4
mov ecx, dword [ebp - 0x138]
mov edx, esi
push 1
call fcn.10040620
add esp, 4
mov edx, dword [ebp - 0xd8]
inc edx
mov eax, dword [ebp - 0xd4]
mov ecx, edx
mov dword [ebp - 0xd8], edx
cmp edx, dword [eax]
mov esi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xb8]
jl 0x1003b435
jmp 0x1003aa30
push 0x40
push str.at_most__d_tables_in_a_join
push dword [ebp - 0x9c]
call fcn.100463a0
add esp, 0xc
jmp 0x1003e5fd
cmp dword [ebp - 0x94], 0
je 0x1003e5fd
mov ecx, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x94]
call fcn.1014d210
jmp 0x1003e5fd
lea ecx, [ebx + 0x48]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xc0], 0
cmp ecx, dword [ebp - 0x108]
jae 0x1003b7eb
mov dword [ebp - 0xb4], 0
mov eax, ebx
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x144], ecx
mov ecx, dword [ebp - 0xb4]
or ecx, dword [ebp - 0x124]
je 0x1003b7a0
mov eax, dword [eax + 0x74]
mov ecx, dword [ebp - 0xd4]
cmp dword [ecx + 0x1f8], eax
jne 0x1003b74b
mov dword [ebp - 0xc0], 0
xor eax, eax
inc eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xb4]
or dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xc0]
or eax, dword [ebp - 0x124]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x144]
lea ecx, [eax + 0x48]
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xb4], edx
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x124], edx
cmp ecx, dword [ebp - 0x108]
jb 0x1003b6bf
jmp 0x1003b7eb
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx + 0x1f4]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xc0], 0
cmp edx, 2
jl 0x1003b6fb
dec edx
xor ecx, ecx
mov edi, dword [ebp - 0xd4]
cmp dword [edi + ecx*4 + 0x1fc], eax
je 0x1003b7c3
inc ecx
cmp edx, ecx
jne 0x1003b773
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xc0], 0
jmp 0x1003b6fb
test byte [eax + 0x6c], 0x22
jne 0x1003b6d7
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xc0], 0
jmp 0x1003b719
inc cl
xor edx, edx
inc edx
xor edi, edi
shld edi, edx, cl
xor eax, eax
shl edx, cl
test cl, 0x20
cmovne edi, edx
mov dword [ebp - 0xc0], edi
cmovne edx, eax
mov dword [ebp - 0xa8], edx
jmp 0x1003b6fb
lea ecx, [ebp - 0x90]
mov edx, dword [ebp - 0xc4]
push dword [ebp - 0xc0]
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
call fcn.10175410
add esp, 0xc
mov edi, eax
jmp 0x1003add7
xor edi, edi
mov edx, dword [esi + 0x38]
lea ebx, [esi + 0x40]
cmp edx, ebx
jne 0x1003ee68
mov eax, dword [esi + 0x2c]
test eax, 0x4400
jne 0x1003ca33
mov word [esi + 0x30], 0
mov dword [esi + 0x2c], 0
test edi, edi
jne 0x1003e5d4
mov ecx, dword [ebp - 0x94]
xor edx, edx
call fcn.10045580
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x57], 0
jne 0x1003e5d4
mov eax, dword [ebp - 0x94]
cmp dword [eax + 8], 0
jne 0x1003c99c
mov eax, dword [ebp - 0xfc]
test byte [eax + 0x21], 0x10
jne 0x1003ee54
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x24], 0
jne 0x1003e5dd
mov eax, dword [ebp - 0x94]
mov al, byte [eax + 0x2c]
bt dword [ebp - 0xa4], 0xa
jb 0x1003b8b9
cmp dword [ebp + 0x10], 0
je 0x1003b8b9
cmp al, 2
jae 0x1003cc51
xor ecx, ecx
dec ecx
mov dword [ebp - 0x108], ecx
cmp al, 2
jae 0x1003cc2e
mov ecx, dword [ebp - 0x94]
movsx eax, word [ecx + 0x34]
mov ecx, dword [ecx]
add dword [ecx + 0x8c], eax
movzx ebx, word [ebp - 0xa4]
test bl, 4
jne 0x1003c9d3
mov dword [ebp - 0xd8], 0
cmp dword [ebp - 0x12c], 0
jle 0x1003c94f
mov eax, dword [ebp - 0x98]
lea ecx, [eax + 0x6c]
mov dword [ebp - 0xc4], ecx
add eax, 0x68
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x154], ebx
and ebx, 0x20
mov dword [ebp - 0xb8], ebx
sete al
cmp dword [ebp + 0x1c], 0
sete cl
or cl, al
mov byte [ebp - 0xc0], cl
xor edi, edi
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb0], eax
movzx eax, byte [eax + 0x3c]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xa0], ecx
mov eax, dword [eax + ecx*8 + 0x18]
mov dword [ebp - 0xa4], eax
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x1003d71d
mov ecx, dword [ebp - 0xfc]
mov ecx, dword [ecx + 0x10]
add ecx, 0xc
xor ebx, ebx
dec ebx
inc ebx
lea edx, [ecx + 0x10]
cmp dword [ecx], eax
mov ecx, edx
jne 0x1003b981
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x50]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xa4]
test byte [eax + 0x1d], 0x40
mov dword [ebp - 0xd4], edi
jne 0x1003bb0e
mov eax, dword [ebp - 0xa4]
mov cl, byte [eax + 0x2b]
cmp cl, 2
je 0x1003bb0e
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x2c]
bt eax, 0xa
jb 0x1003ed91
cmp cl, 1
je 0x1003bb0e
and eax, 0x40
or eax, dword [ebp - 0xb8]
jne 0x1003bce1
mov eax, 0x70
mov esi, dword [ebp - 0x94]
cmp byte [esi + 0x2e], 0
jne 0x1003bd45
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xa0]
mov edx, dword [ecx + edx*8 + 0x34]
mov ecx, dword [ebp - 0x9c]
push eax
push dword [ebp - 0xa4]
push ebx
call fcn.10040c10
add esp, 0xc
cmp byte [esi + 0x2e], 0
jne 0x1003baec
mov eax, dword [ebp - 0xa4]
cmp word [eax + 0x22], 0x3f
jg 0x1003baec
mov eax, dword [ebp - 0xa4]
test byte [eax + 0x1c], 0xe0
jne 0x1003baec
mov eax, dword [ebp - 0xd0]
test dword [eax + 0x2c], 0x404000
jne 0x1003baec
mov dword [ebp - 0xdc], ebx
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xa0]
mov ecx, dword [eax + edx*8 + 0x40]
mov edx, dword [eax + edx*8 + 0x44]
mov eax, ecx
or eax, edx
je 0x1003cae6
xor eax, eax
mov esi, edx
mov edi, edx
shld edi, ecx, 0x1f
shr esi, 1
inc eax
xor ebx, ebx
inc ebx
cmp ebx, ecx
mov ecx, 0
sbb ecx, edx
mov ecx, edi
mov edx, esi
jb 0x1003ba8e
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx]
cmp byte [ecx + 0x57], 0
mov edi, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xdc]
jne 0x1003baec
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ecx]
dec edx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea edx, [edx + edx*4]
cmp byte [ecx + edx*4 + 1], 0
jne 0x1003cc8e
lea ecx, [ecx + edx*4]
inc ecx
mov dword [ecx + 0xf], eax
mov byte [ecx], 0xfd
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
test eax, eax
jle 0x1003bb0e
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0xd8]
mov word [ecx + eax*4 - 0x12], dx
mov eax, dword [ebp - 0xd0]
test byte [eax + 0x2d], 2
je 0x1003bc80
mov eax, dword [ebp - 0xd0]
mov esi, dword [eax + 0x20]
mov eax, dword [ebp - 0xa4]
test byte [eax + 0x1c], 0x80
jne 0x1003bd24
mov eax, dword [ebp - 0x94]
cmp byte [eax + 0x2e], 0
jne 0x1003cbee
cmp byte [ebp - 0xc0], 0
je 0x1003d868
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ecx + 0x28]
lea eax, [edi + 1]
mov dword [ecx + 0x28], eax
test byte [esi + 0x39], 8
jne 0x1003f1cb
mov dword [ebp - 0xdc], 0x70
mov eax, dword [ebp - 0xb0]
mov dword [eax + 8], edi
mov eax, dword [esi + 0x2c]
mov edx, dword [ebp - 0x98]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x1003ccd9
lea edx, [ecx + 1]
mov dword [ebp - 0xe8], eax
mov eax, edi
mov edi, esi
mov esi, dword [ebp - 0xc4]
mov dword [esi], edx
mov esi, edi
mov edx, dword [ebp - 0xac]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov edi, ebx
mov ebx, dword [ebp - 0xdc]
mov byte [edx + ecx*4], bl
mov ebx, edi
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0xe8]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], edi
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ecx + 8]
mov edx, esi
call fcn.10040940
test eax, eax
je 0x1003bc1c
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x1003ee81
mov ecx, dword [edi + 0x68]
mov edx, dword [edi + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf8
mov dword [ecx + edx*4 - 4], eax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x2c]
test al, 0xf
mov edi, dword [ebp - 0xd4]
je 0x1003bc80
mov ecx, eax
and ecx, 0x8002
jne 0x1003bc80
mov ecx, eax
and ecx, 0x80000
jne 0x1003bc80
and eax, 0x100000
jne 0x1003bc80
mov eax, dword [ebp - 0x94]
test byte [eax + 0x28], 1
jne 0x1003bc80
mov eax, dword [ebp - 0x94]
cmp byte [eax + 0x2f], 2
je 0x1003bc80
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
test eax, eax
jle 0x1003bc80
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 2
test ebx, ebx
js 0x1003bcaf
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x78]
test eax, eax
cmove eax, ecx
mov edx, dword [eax + 0x58]
xor esi, esi
inc esi
mov ecx, ebx
shl esi, cl
bt edx, ebx
jb 0x1003bcaf
or edx, esi
mov dword [eax + 0x58], edx
cmp ebx, 1
je 0x1003cd49
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xa0]
test byte [eax + ecx*8 + 0x2c], 0x10
jne 0x1003e6fd
inc edi
mov eax, dword [ebp - 0xb0]
add eax, 0x60
cmp edi, dword [ebp - 0x12c]
jne 0x1003b944
jmp 0x1003bd62
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xa0]
test byte [eax + ecx*8 + 0x2c], 0x50
jne 0x1003b9ed
cmp ebx, 1
je 0x1003bb0e
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov ecx, ebx
shl ecx, 4
mov eax, dword [eax + ecx + 4]
cmp byte [eax + 9], 0
je 0x1003bb0e
jmp 0x1003f8d5
cmp dword [ebp - 0xb8], 0
je 0x1003bb37
mov eax, dword [esi + 0x38]
and eax, 3
cmp eax, 2
jne 0x1003bb37
jmp 0x1003fc1d
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [eax + ecx*8 + 0x34]
mov dword [esi + 0x14], eax
mov eax, 0x71
jmp 0x1003ba02
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x94]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x57], 0
jne 0x1003e5dd
mov eax, dword [ebp - 0x9c]
add eax, 0x20
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x94]
lea ecx, [eax + 0x330]
add eax, 0x394
xor edx, edx
dec edx
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x144], ecx
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x24], 0
jne 0x1003e5dd
mov eax, dword [ebp - 0xd0]
lea esi, [eax + eax*2]
shl esi, 5
mov ecx, dword [ebp - 0x94]
mov eax, dword [ecx + esi + 0x348]
mov edi, dword [eax + 0x2c]
movzx eax, byte [ecx + esi + 0x334]
lea ebx, [eax + eax*8]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + ebx*8 + 0x30]
test al, 0x10
mov dword [ebp - 0xa4], esi
jne 0x1003e003
lea eax, [ecx + esi]
add eax, 0x2f8
test edi, 0x404000
mov dword [ebp - 0xd4], eax
jne 0x1003e837
mov ebx, dword [ebp - 0x94]
lea ecx, [ebx + esi]
add ecx, 0x348
mov dword [ebp - 0xb0], ecx
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xe4]
push dword [ebp - 0x154]
push eax
mov edi, eax
call fcn.100416f0
add esp, 8
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx - 0x30], eax
mov ecx, dword [ebx + 4]
movzx eax, byte [edi + 0x3c]
mov edi, dword [ebp - 0x9c]
lea eax, [eax + eax*8]
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xe8], eax
mov ecx, dword [ecx + eax*8 + 0x34]
xor edx, edx
xor eax, eax
inc eax
mov dword [ebp - 0xec], ecx
cmp dword [ebx + 0x1f8], ecx
jne 0x1003caed
mov ecx, dword [edi]
mov dword [ebp - 0x10c], ecx
mov ecx, dword [ebp - 0xb0]
mov ecx, dword [ecx]
mov dword [ebp - 0xb0], ecx
not eax
not edx
and edx, dword [ebp - 0x108]
and eax, dword [ebp - 0xf8]
mov dword [ebx + esi + 0x350], eax
mov dword [ebx + esi + 0x354], edx
mov eax, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0xd0]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmove edx, eax
mov dword [ebp - 0xa8], edx
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
mov dword [ebx + esi + 0x308], eax
mov dword [ebp - 0xa0], eax
mov dword [ebx + esi + 0x304], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
mov dword [ebp - 0x124], eax
mov dword [ebx + esi + 0x310], eax
mov eax, dword [ebp - 0xd4]
cmp byte [eax + 0x3c], 0
jne 0x1003cb45
xor ebx, ebx
test ecx, ecx
jne 0x1003cab4
mov edi, dword [ebp - 0x94]
mov eax, dword [ebp - 0xa4]
lea ecx, [edi + eax]
add ecx, 0x350
mov dword [ebp - 0xd8], ecx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe8]
mov edx, dword [ecx + edx*8 + 0x30]
test dl, 0x20
jne 0x1003d87a
mov ecx, dword [ebp - 0xa8]
and ecx, 1
mov dword [ebp - 0xb8], ecx
lea esi, [edi + eax]
add esi, 0x308
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x2c]
bt eax, 0xa
jb 0x1003e8ef
lea ecx, [ebx + ebx*2]
shl ecx, 5
mov edi, dword [edi + ecx + 0x304]
bt eax, 8
jae 0x1003bfbc
mov ecx, eax
and ecx, 5
jne 0x1003c88d
mov ecx, eax
not ecx
test ecx, 0x102
je 0x1003edd2
bt eax, 9
jae 0x1003c799
mov dword [ebp - 0x104], esi
mov ebx, dword [ebp - 0xb0]
movzx edx, word [ebx + 0x18]
movzx ecx, word [ebx + 0x1a]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xcc], 0
mov ecx, 0
mov dword [ebp - 0xbc], 0
mov esi, edx
mov dword [ebp - 0xc8], edx
test al, 0x20
jne 0x1003cdd0
movzx edi, word [ebx + 0x1c]
mov esi, dword [ebx + 0x20]
mov dword [ebp - 0xa0], esi
mov esi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa4]
mov esi, dword [esi + ebx + 0x300]
mov dword [ebp - 0xc0], esi
test al, 0x10
jne 0x1003d212
mov esi, ecx
xor edx, edx
mov ebx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x2c]
mov ecx, 0x80030
and eax, ecx
mov dword [ebp - 0xb4], 0
cmp eax, 0x80000
je 0x1003eea5
mov eax, dword [ebp - 0xa0]
cmp bx, word [eax + 0x34]
jae 0x1003c09d
mov eax, dword [eax + 0x1c]
cmp byte [eax + ebx], 0
setne al
mov ecx, dword [ebp - 0xa8]
and cl, 1
cmp cl, al
jne 0x1003d727
mov dword [ebp - 0x140], 0
mov eax, edx
mov ecx, edi
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xd0], 0
mov edi, dword [ebp - 0xb4]
jne 0x1003cca7
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xd4]
lea eax, [ebp - 0x70]
push eax
push esi
push dword [ebp - 0xb8]
call fcn.10041de0
add esp, 0xc
mov dword [ebp - 0x110], eax
mov esi, dword [ebp - 0x70]
xor eax, eax
test esi, esi
je 0x1003c106
cmp word [ebp - 0x134], 0
jne 0x1003cffc
mov dword [ebp - 0x120], eax
test edi, edi
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
lea eax, [eax + ecx + 0x320]
mov ecx, dword [ebp - 0x104]
cmovne ecx, eax
mov eax, dword [ecx]
mov dword [ebp - 0x104], eax
mov cl, 1
mov al, 1
cmp dword [ebp - 0xbc], 0
jne 0x1003d02a
mov byte [ebp - 0xf0], al
mov eax, dword [ebp - 0xf4]
test eax, eax
jne 0x1003cdf1
mov byte [ebp - 0x11c], cl
test ebx, ebx
setne al
mov edx, dword [ebp - 0xbc]
mov ecx, edx
or ecx, ebx
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0xa8], ecx
setne cl
test edx, edx
mov dword [ebp - 0x128], esi
jne 0x1003d03c
cmp byte [ebp - 0xcc], 0
jne 0x1003e604
xor ecx, ecx
test edi, edi
jne 0x1003e604
mov edx, ebx
mov byte [ebp - 0x114], al
movzx eax, byte [ebp - 0x11c]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xcc], edx
mov eax, edx
mov dword [ebp - 0xe0], ecx
sub eax, ecx
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa8]
push esi
push eax
call fcn.10040b20
add esp, 8
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x32]
test eax, eax
je 0x1003c1f5
cmp dword [ebp - 0xcc], eax
je 0x1003f5cb
test edi, edi
jne 0x1003ef35
movzx edx, byte [ebp - 0xf0]
neg edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [eax + ecx + 0x32c]
test eax, eax
jne 0x1003ef52
movzx eax, byte [ebp - 0x114]
mov dword [ebp - 0x114], edx
mov ecx, edx
and ecx, 1
add ecx, ecx
lea eax, [ecx + eax*4]
mov edx, dword [ebp - 0xb8]
mov cl, byte [edx + eax + 0x101b46c0]
mov byte [ebp - 0x11c], cl
mov dword [ebp - 0xf0], 0
mov ecx, dword [ebp - 0xb0]
test byte [ecx + 0x2e], 0x10
je 0x1003c26c
or eax, edx
cmp eax, 6
je 0x1003f5f8
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003ccf5
lea ecx, [eax + 1]
mov edx, dword [ebp - 0xc4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
mov bl, byte [ebp - 0x11c]
mov byte [ecx + edx*4], bl
mov word [ecx + edx*4 + 2], 0
mov edi, dword [ebp - 0xc0]
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [ebp - 0xb4]
mov esi, dword [ebp - 0x104]
mov dword [ecx + edx*4 + 8], esi
mov esi, dword [ebp - 0xa8]
mov dword [ecx + edx*4 + 0xc], esi
mov dword [ecx + edx*4 + 0x10], 0
mov byte [ecx + edx*4 + 1], 0
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx]
cmp byte [ecx + 0x57], 0
mov edx, dword [ebp - 0xcc]
jne 0x1003c2fd
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
test edi, edi
jne 0x1003efd1
mov eax, dword [ebp - 0xf4]
test eax, eax
jne 0x1003ce0d
mov ebx, dword [ebp - 0xc8]
cmp byte [ebp - 0x140], 0
jne 0x1003f125
mov esi, ebx
mov edx, dword [ebp - 0x128]
test edx, edx
je 0x1003c33d
mov ecx, dword [ebp - 0x10c]
call fcn.1014c8d0
mov edx, dword [ebp - 0x120]
test edx, edx
jne 0x1003cdfd
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
cmp dword [eax + ecx + 0x33c], 0
jne 0x1003c372
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe8]
lea eax, [eax + ecx*8]
add eax, 0x2c
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xa0], edi
cmp edi, 1
mov eax, 0
adc eax, 1
mov dword [ebp - 0xb0], eax
lea eax, [edx + esi]
add eax, 0x2fc
mov dword [ebp - 0xc0], eax
mov edi, dword [edx + 0x5c]
test edi, edi
jle 0x1003c6bd
mov esi, dword [edx + 0x68]
xor eax, eax
mov ecx, eax
movzx eax, word [esi + 0xa]
test al, 6
jne 0x1003c641
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 0xd8]
mov ebx, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0xe8], edx
and ecx, edx
mov edx, dword [esi + 0x28]
and edx, ebx
or edx, ecx
jne 0x1003c87e
mov edx, dword [esi]
mov ecx, dword [ebp - 0xdc]
movzx ecx, byte [ecx]
test cl, 0x58
jne 0x1003d63d
mov ecx, dword [ebp - 0xb0]
cmp ecx, 1
je 0x1003c656
mov ebx, edx
cmp ecx, 2
ja 0x1003c614
bt eax, 0xc
jb 0x1003d853
bt eax, 9
jb 0x1003e659
push 0x10
push dword [ebp - 0x124]
push ebx
push dword [ebp - 0x9c]
call fcn.10040dd0
add esp, 0x10
or byte [esi + 0xa], 4
mov eax, dword [ebp - 0xb8]
jmp 0x1003c643
mov eax, ecx
lea ecx, [edi - 1]
add esi, 0x30
cmp edi, 1
mov edi, ecx
jg 0x1003c5ad
jmp 0x1003c6a9
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax]
mov dword [ebp - 0x74], eax
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
xor eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x6c], 0x10075ac0
lea eax, [ebp - 0x78]
mov dword [ebp - 0x58], eax
test edx, edx
je 0x1003ee49
lea ecx, [ebp - 0x70]
mov ebx, edx
call fcn.1014d480
cmp word [ebp - 0x5c], 0
mov eax, 2
jne 0x1003c643
jmp 0x1003ee4b
mov dword [ebp - 0xb0], eax
test eax, eax
mov edx, dword [ebp - 0x94]
jg 0x1003c59d
mov esi, dword [edx + 0x64]
test esi, esi
jle 0x1003c701
mov eax, dword [ebp - 0x94]
mov edi, dword [eax + 0x68]
test byte [edi + 0xa], 6
je 0x1003c6e2
lea eax, [esi - 1]
add edi, 0x30
cmp esi, 1
mov esi, eax
jg 0x1003c6cd
jmp 0x1003c701
movzx eax, word [edi + 0xc]
test al, 0x82
je 0x1003c6d3
and eax, 0x800
je 0x1003c6d3
mov eax, dword [ebp - 0xec]
cmp dword [edi + 0x14], eax
jne 0x1003c6d3
jmp 0x1003d252
mov ecx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa4]
mov edi, dword [ecx + ebx + 0x330]
test edi, edi
jne 0x1003e86c
lea esi, [ecx + ebx]
add esi, 0x330
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax]
test eax, eax
jne 0x1003d31b
mov esi, dword [esi]
test esi, esi
jne 0x1003e8bf
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx]
mov dword [ebp - 0xf8], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x108], eax
mov eax, dword [ecx - 0x40]
mov ecx, dword [ebp - 0x94]
mov dword [ecx + 0x1c], eax
mov esi, dword [ebp - 0xd0]
inc esi
mov ecx, dword [ebp - 0x144]
add ecx, 0x60
mov edx, dword [ebp - 0x148]
dec edx
mov eax, dword [ebp - 0x14c]
add eax, 0x60
mov dword [ebp - 0xd0], esi
cmp esi, dword [ebp - 0x12c]
jne 0x1003bdb0
jmp 0x1003c947
bt eax, 0xd
jb 0x1003d9d3
test dl, 0x40
jne 0x1003c92e
mov esi, dword [ebp - 0xb8]
mov al, byte [esi + 0x101b46cc]
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa4]
mov byte [ecx + edx + 0x335], al
mov ebx, dword [ebp - 0xec]
mov dword [ecx + edx + 0x338], ebx
mov cl, byte [esi + 0x101b46ce]
mov eax, dword [ebp - 0x98]
mov edx, dword [eax + 0x6c]
cmp dword [eax + 0x70], edx
jle 0x1003d00f
lea eax, [edx + 1]
mov esi, dword [ebp - 0xc4]
mov dword [esi], eax
mov esi, dword [ebp - 0xac]
mov esi, dword [esi]
lea edx, [edx + edx*4]
mov byte [esi + edx*4], cl
mov word [esi + edx*4 + 2], 0
mov dword [esi + edx*4 + 4], ebx
mov dword [esi + edx*4 + 8], edi
xor ecx, ecx
mov dword [esi + edx*4 + 0xc], ecx
mov dword [esi + edx*4 + 0x10], ecx
mov byte [esi + edx*4 + 1], 0
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
mov dword [edx + esi + 0x33c], eax
mov byte [edx + esi + 0x337], 1
xor edi, edi
jmp 0x1003c560
mov eax, dword [ebp - 0x94]
or byte [eax + 0x30], 2
jmp 0x1003c639
mov ebx, esi
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ecx + 0x2c]
lea eax, [edi + 1]
mov dword [ecx + 0x2c], eax
push eax
push dword [ebp - 0xb8]
push 0
push dword [ebp - 0xd4]
call fcn.100423b0
add esp, 0x10
mov esi, eax
inc edi
jne 0x1003ca80
mov edi, dword [ebx]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
cmp dword [eax + ecx + 0x32c], 0
jne 0x1003fb3e
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003d615
lea ecx, [eax + 1]
mov edx, dword [ebp - 0xc4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x1e
mov edx, dword [ebp - 0xec]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], esi
mov dword [ecx + eax*4 + 0x10], 0
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
mov byte [edx + esi + 0x335], 0xb8
jmp 0x1003c842
mov eax, dword [ebp - 0xc4]
jmp 0x1003c97a
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ebp - 0x94]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x57], 0
jne 0x1003e5dd
mov eax, dword [ebp - 0x98]
add eax, 0x6c
mov eax, dword [eax]
mov esi, dword [ebp - 0x94]
mov dword [esi + 0x3c], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, esi
add esp, 0x148
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x94]
mov eax, dword [ecx + 0x34]
inc eax
movsx edx, ax
call fcn.10045580
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x57], 0
jne 0x1003e5dd
mov eax, dword [ebp - 0x94]
cmp dword [eax + 8], 0
jne 0x1003b888
jmp 0x1003b878
mov esi, dword [ebp - 0x94]
mov eax, dword [esi + 0x348]
mov ecx, dword [eax + 0x2c]
mov dl, 1
bt ecx, 0xc
jae 0x1003cd6e
mov byte [esi + 0x2e], dl
mov edx, dword [ebp - 0xe4]
mov edx, dword [edx + 0x18]
mov dword [ebp - 0xd8], 0
test byte [edx + 0x1c], 0x80
jne 0x1003b8f6
mov edx, ecx
and edx, 0x40
je 0x1003b8f6
mov edx, dword [ebp - 0xa4]
and edx, 8
and ecx, 0xffffffbf
mov dword [eax + 0x2c], ecx
mov dword [ebp - 0xd8], edx
jmp 0x1003b8f6
bt eax, 0xa
jb 0x1003fbf8
bt eax, 0xe
jae 0x1003b836
mov edx, dword [esi + 0x20]
test edx, edx
je 0x1003b836
mov eax, dword [edx + 0x10]
test eax, eax
je 0x1003ca69
mov ecx, dword [ebp - 0xe8]
mov edx, eax
call fcn.1014d210
mov edx, dword [esi + 0x20]
mov ecx, dword [ebp - 0xe8]
call fcn.1014d210
mov dword [esi + 0x20], 0
jmp 0x1003b836
cmp esi, edi
je 0x1003c8c9
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x1003c8c9
mov ecx, eax
inc cl
mov edx, dword [ebp - 0x9c]
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0xa0], edi
jmp 0x1003c8c9
mov eax, dword [ebp - 0x144]
mov edx, dword [ebp - 0xd0]
cmp dword [eax - 0x38], 0
jne 0x1003d3f0
cmp dword [eax], 0
jne 0x1003d3f0
lea edi, [edx - 1]
add eax, 0xffffffa0
cmp edx, 1
mov edx, edi
jle 0x1003bf3f
jmp 0x1003cac0
xor eax, eax
jmp 0x1003baa9
mov eax, dword [ebx + 0x1f4]
cmp eax, 2
jl 0x1003fd44
dec eax
mov dword [ebp - 0xa0], eax
xor ecx, ecx
mov ebx, dword [ebp - 0x94]
mov eax, dword [ebp - 0xec]
cmp dword [ebx + ecx*4 + 0x1fc], eax
je 0x1003cbbd
inc ecx
xor eax, eax
mov edx, 0
cmp dword [ebp - 0xa0], ecx
mov edi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
jne 0x1003cb0b
jmp 0x1003bea5
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe8]
test byte [eax + edx*8 + 0x2c], 8
je 0x1003bf35
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 0xd4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x98]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x1003e0cb
lea edx, [ecx + 1]
mov edi, dword [ebp - 0xc4]
mov dword [edi], edx
mov edx, dword [ebp - 0xac]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x47
xor edi, edi
mov dword [edx + ecx*4 + 4], edi
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], edi
mov dword [edx + ecx*4 + 0x10], edi
mov ecx, dword [ebp - 0xd0]
jmp 0x1003bf35
inc cl
xor edx, edx
xor eax, eax
inc eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov ecx, 0
cmovne eax, ecx
mov edi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
jmp 0x1003bea5
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xa0]
lea eax, [eax + ecx*8]
add eax, 0x18
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edi, dword [ebp + 0x1c]
test eax, eax
je 0x1003cc16
cmp eax, esi
je 0x1003cc16
inc edi
mov eax, dword [eax + 0x14]
jmp 0x1003cc08
mov eax, dword [ebp - 0x94]
mov dword [eax + 0x18], edi
mov dword [ebp - 0xdc], 0x71
jmp 0x1003bb77
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x50]
bt eax, 0x13
jb 0x1003b8ca
mov ecx, dword [ebp - 0x94]
call fcn.100464a0
jmp 0x1003b8ca
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 0x50]
bt eax, 8
jb 0x1003fdaa
mov esi, dword [ebp - 0x94]
mov ecx, esi
call fcn.1004a520
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x108], edx
mov al, byte [esi + 0x2c]
movzx ecx, al
mov dword [ebp - 0x12c], ecx
jmp 0x1003b8c2
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x98]
push 0xfffffffffffffffd
push eax
call fcn.10035ca0
add esp, 8
jmp 0x1003baec
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x2e], 0x10
je 0x1003c0ca
xor eax, eax
mov ecx, dword [ebp - 0x98]
mov edx, 0x88
push eax
push eax
push dword [ebp - 0xc0]
call fcn.1002fb80
add esp, 0xc
jmp 0x1003c0ca
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xdc]
push ebx
push eax
push edi
call fcn.10016c40
add esp, 0xc
jmp 0x1003bbea
movzx edx, byte [ebp - 0x11c]
mov ecx, dword [ebp - 0x98]
push dword [ebp - 0xa8]
push dword [ebp - 0x104]
push dword [ebp - 0xc0]
call fcn.10016c40
add esp, 0xc
jmp 0x1003c2d5
mov ecx, eax
call fcn.10042310
jmp 0x1003bcaf
test bl, 8
je 0x1003b8ec
mov edx, dword [ebp - 0xe4]
mov edx, dword [edx + 0x18]
cmp byte [edx + 0x2b], 1
je 0x1003b8ec
mov dl, 2
test bl, 0x10
jne 0x1003d4f4
mov esi, ecx
and esi, 0x2000
mov esi, dword [ebp - 0x94]
je 0x1003c9ee
jmp 0x1003b8ec
movzx ecx, word [ebp - 0x100]
mov esi, dword [ebx + 0x38]
mov edi, dword [ebp - 0xc8]
lea edx, [edi + 1]
mov esi, dword [esi + edi*4]
mov dword [ebp - 0xbc], esi
jmp 0x1003c019
test byte [eax + 0xc], 0x28
setne cl
jmp 0x1003c157
mov ecx, dword [ebp - 0x10c]
call fcn.1014c8d0
jmp 0x1003c34b
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xf0], 0
mov ebx, dword [ebp - 0xc8]
jne 0x1003fe07
mov dword [ebp - 0xf0], 0
movzx esi, word [ebp - 0x134]
mov eax, dword [ebp - 0x110]
add eax, ebx
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xbc]
push esi
mov dword [ebp - 0x110], eax
push eax
call fcn.10049760
add esp, 8
mov eax, dword [ebp - 0xf4]
lea ecx, [eax + 0xa]
mov dword [ebp - 0xcc], ecx
movzx eax, word [eax + 0xa]
bt eax, 8
jb 0x1003fe27
test al, al
js 0x1003cf11
mov eax, dword [ebp - 0xbc]
movzx ecx, byte [eax]
cmp ecx, 0xb0
je 0x1003e47b
cmp dword [ebp - 0x120], 0
je 0x1003cf43
mov edi, dword [ebp - 0xb4]
jmp 0x1003c328
lea edx, [esi + ebx]
mov ecx, dword [ebp - 0x10c]
call fcn.10038240
jmp 0x1003c106
movzx edx, cl
mov ecx, dword [ebp - 0x98]
push 0
push edi
push ebx
call fcn.10016c40
add esp, 0xc
inc eax
jmp 0x1003c827
mov eax, dword [ebp - 0xbc]
test byte [eax + 0xc], 0x28
setne al
jmp 0x1003c143
mov byte [ebp - 0x114], cl
mov edi, dword [ebp - 0xbc]
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
movzx eax, word [ebp - 0x100]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x110]
add eax, ebx
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0xe0], edx
push dword [ebp - 0xcc]
mov dword [ebp - 0x130], eax
push eax
call fcn.10049760
add esp, 8
lea eax, [edi + 0xa]
mov dword [ebp - 0x118], eax
movzx eax, word [edi + 0xa]
bt eax, 8
jb 0x1003ff3b
test al, al
mov edx, dword [ebp - 0xcc]
js 0x1003d140
mov eax, dword [ebp - 0xe0]
movzx ecx, byte [eax]
cmp ecx, 0xb0
je 0x1003e4e2
lea edx, [ecx - 0xad]
cmp edx, 1
jbe 0x1003e52d
mov edx, dword [ebp - 0xcc]
cmp cl, 0xa7
je 0x1003d7a2
movzx eax, cl
cmp eax, 0x75
je 0x1003d140
add eax, 0xffffff67
cmp eax, 3
jb 0x1003d140
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003e088
lea ecx, [eax + 1]
mov edx, dword [ebp - 0xc4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x32
mov edx, dword [ebp - 0x130]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp - 0x104]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov edx, dword [ebp - 0xcc]
test esi, esi
je 0x1003d152
cmp word [ebp - 0x100], 0
jne 0x1003d4ff
mov eax, dword [ebp - 0xe0]
mov al, byte [eax]
cmp al, 0xb0
je 0x1003ffa8
add edx, ebx
mov dword [ebp - 0xcc], edx
cmp al, 0x8a
je 0x1003ffb6
movzx eax, al
cmp eax, 0xb1
je 0x1003ffca
mov eax, dword [ebp - 0x118]
movzx ecx, word [eax]
test cl, 4
jne 0x10040008
xor eax, eax
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x100], ecx
mov edi, dword [ebp - 0xd4]
cmp dword [edi], 0
jne 0x1003e34c
mov edi, dword [edx + 0x28]
mov ebx, dword [edx + 0x2c]
mov ecx, dword [ebp - 0xd8]
and ebx, dword [ecx + 4]
and edi, dword [ecx]
xor ecx, ecx
or edi, ebx
jne 0x1003d1fb
bt dword [ebp - 0x100], 0xa
mov edi, 0x200
mov ebx, 4
cmovae edi, ebx
sub eax, 1
cmovb edi, ebx
or edi, dword [ebp - 0x100]
mov ebx, dword [ebp - 0x118]
mov word [ebx], di
mov edi, dword [edx + 0x10]
test edi, edi
jns 0x1003e290
mov ebx, dword [ebp - 0xc8]
mov edi, dword [ebp - 0xb4]
mov edx, dword [ebp - 0xcc]
jmp 0x1003c1a8
movzx esi, di
cmp ecx, esi
cmova esi, ecx
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + edx*4]
test byte [edx + 0xb], 1
mov ebx, dword [ebp - 0xc8]
jne 0x1004006e
cmp dword [ebp - 0xbc], 0
je 0x1004012a
mov dword [ebp - 0xcc], 0
jmp 0x1003c051
mov eax, dword [ebp - 0xdc]
test byte [eax], 0x58
jne 0x1003c6d3
mov ebx, dword [edi]
mov eax, dword [edi + 0x18]
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], ecx
mov byte [ebp - 0x58], 0
movaps xmm0, xmmword [0x101af3f0]
movups xmmword [ebp - 0x68], xmm0
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x54], ecx
mov word [ebp - 0x57], 0x101
cmp eax, 0xfffffffe
je 0x1003c6d3
mov word [ebp - 0x28], ax
lea ecx, [ebp - 0x70]
call fcn.101500e0
test eax, eax
je 0x1003c6d3
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb0], ebx
mov ebx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0xa0], edx
and edx, dword [ebp - 0x108]
mov ecx, ebx
and ecx, dword [ebp - 0xf8]
or ecx, edx
jne 0x1003d2f6
or ebx, dword [ebp - 0xa0]
jne 0x100401d9
test byte [eax + 0xc], 0x82
jne 0x1003d936
jmp 0x100401d9
lea ecx, [ebp - 0x70]
call fcn.101500e0
test eax, eax
mov ebx, dword [ebp - 0xb0]
jne 0x1003d2bd
mov edx, dword [ebp - 0xb8]
test edx, edx
je 0x1003c6d3
jmp 0x1003d93e
mov edx, dword [ebp - 0x98]
mov ecx, dword [edx + 0x6c]
mov edi, dword [ebp - 0x94]
mov dword [edi + ebx + 0x314], ecx
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x1003e0ae
lea edx, [ecx + 1]
mov edi, dword [ebp - 0xc4]
mov dword [edi], edx
mov edx, dword [ebp - 0xac]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x47
mov dword [edx + ecx*4 + 4], 1
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov esi, dword [esi]
test esi, esi
jne 0x1003e8bf
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 0x64]
test eax, eax
jle 0x1003c73f
mov ecx, dword [ebp - 0x94]
mov esi, dword [ecx + 0x68]
xor edi, edi
test byte [esi + 0xa], 6
je 0x1003d3a9
inc edi
add esi, 0x30
cmp edi, eax
jl 0x1003d396
jmp 0x1003c73f
mov edx, dword [ebp - 0xd8]
mov ecx, dword [edx + 4]
and ecx, dword [esi + 0x2c]
mov edx, dword [edx]
and edx, dword [esi + 0x28]
or edx, ecx
jne 0x1003d39c
mov ecx, dword [ebp - 0xdc]
test byte [ecx], 0x40
jne 0x1003d39c
push 0x10
push dword [ebp - 0x124]
push dword [esi]
push dword [ebp - 0x9c]
call fcn.10040dd0
add esp, 0x10
or byte [esi + 0xa], 4
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 0x64]
jmp 0x1003d39c
mov ebx, edx
jmp 0x1003bf3f
mov esi, dword [ebp - 0x94]
jmp 0x1003c9ee
lea eax, [esi + ebx]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xe0]
add eax, 0x14
mov dword [ebp - 0x130], eax
xor edi, edi
mov eax, dword [ebp - 0xe0]
mov al, byte [eax]
mov ecx, eax
cmp al, 0xb0
je 0x1004000f
mov edx, dword [ebp - 0x130]
cmp cl, 0xb1
je 0x10040028
movzx edx, cl
mov ecx, dword [ebp - 0xe0]
cmp edx, 0x8a
je 0x1004001d
mov eax, dword [ebp - 0x100]
mov bl, byte [eax + edi]
mov dword [ebp - 0x13c], ecx
call fcn.100439a0
cmp bl, 0x41
jl 0x1003d570
cmp al, 0x41
jge 0x10040192
cmp al, 0x41
movzx ecx, bl
movzx eax, al
cmovl eax, ecx
and al, 0xbf
cmp al, 1
mov ebx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xcc]
jne 0x1003d5a5
mov eax, dword [ebp - 0x100]
mov byte [eax + edi], 0x41
inc edi
cmp edi, edx
jne 0x1003d519
jmp 0x1003d152
mov eax, dword [ebp - 0x100]
mov al, byte [eax + edi]
cmp al, 0x41
je 0x1003d58d
xor ecx, ecx
mov edx, dword [ebp - 0x13c]
movzx edx, byte [edx]
cmp edx, 0xb0
je 0x1003e581
mov ebx, edx
add ebx, 0xffffff53
cmp ebx, 1
jbe 0x1003e5b7
movzx edx, dl
cmp edx, 0x9a
mov ebx, dword [ebp - 0xc8]
jle 0x1003e319
cmp edx, 0xa7
je 0x1003e4ea
cmp edx, 0x9b
mov edx, dword [ebp - 0xcc]
jne 0x1003d597
xor edx, edx
cmp al, 0x43
setge dl
jmp 0x1003e505
mov ecx, dword [ebp - 0x98]
mov edx, 0x1e
push esi
push edi
push dword [ebp - 0xec]
call fcn.10016c40
add esp, 0xc
jmp 0x1003c92e
mov dword [ebp - 0xc8], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0xa8], eax
test byte [ebp - 0xa8], 3
je 0x1003c639
mov dword [ebp - 0xbc], ebx
test cl, 8
je 0x1003d671
and dword [ebp - 0xa8], 1
je 0x1003c639
mov ebx, dword [edx + 0x24]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0xa8], ebx
cmp dword [ecx + 0x1f8], ebx
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xb4], edx
je 0x100401c7
mov ecx, dword [ecx + 0x1f4]
cmp ecx, 2
jl 0x1003d6ca
dec ecx
mov dword [ebp - 0xf4], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa8]
cmp dword [edx + ecx*4 + 0x1fc], ebx
je 0x1003d6d8
inc ecx
cmp dword [ebp - 0xf4], ecx
jne 0x1003d6ac
xor edx, edx
mov dword [ebp - 0xa8], 0
jmp 0x1003d6f8
inc cl
xor ebx, ebx
xor edx, edx
inc edx
shld ebx, edx, cl
shl edx, cl
test cl, 0x20
cmovne ebx, edx
mov dword [ebp - 0xa8], ebx
mov ecx, 0
cmovne edx, ecx
and edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xa8]
and ecx, dword [ebp - 0xe8]
or ecx, edx
mov edx, dword [ebp - 0xb4]
je 0x1003c5f8
jmp 0x1003c639
mov ebx, 0xffff8000
jmp 0x1003b98b
movzx eax, byte [ebp - 0x100]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xbc], edx
mov ecx, edi
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xcc], 0
jmp 0x1003c0b1
test byte [eax + 6], 0x20
jne 0x1003d0ed
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x1003d0ed
movsx eax, word [eax + 0x20]
test eax, eax
js 0x1003d140
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x1003d140
shl eax, 4
test byte [ecx + eax + 4], 0xf
je 0x1003d0ed
jmp 0x1003d140
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
mov eax, 3
cmovne eax, ecx
jmp 0x1003c643
mov dword [ebp - 0xdc], 0x65
mov edi, dword [ebp + 0x1c]
jmp 0x1003bb77
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe8]
mov eax, dword [ecx + edx*8 + 0x20]
mov edi, dword [ecx + edx*8 + 0x24]
mov edx, dword [ebp - 0x98]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x1003e4a5
lea edx, [ecx + 1]
mov ebx, dword [ebp - 0xc4]
mov dword [ebx], edx
mov edx, dword [ebp - 0xac]
mov edx, dword [edx]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0xb
mov dword [edx + ecx*4 + 4], edi
xor ebx, ebx
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], ebx
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003e4c1
lea ecx, [eax + 1]
mov edx, dword [ebp - 0xc4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4], 0xc
mov dword [ecx + edx*4 + 4], edi
mov esi, dword [ebp - 0xa0]
mov dword [ecx + edx*4 + 8], esi
xor esi, esi
mov dword [ecx + edx*4 + 0xc], esi
mov dword [ecx + edx*4 + 0x10], esi
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
mov dword [edx + esi + 0x33c], eax
mov byte [edx + esi + 0x335], 9
jmp 0x1003c842
mov edx, eax
mov ebx, dword [ebp - 0xb0]
test byte [edx + 0xa], 4
jne 0x1003c6d3
test byte [edx + 0xc], 1
mov eax, dword [edx]
je 0x1003d965
test byte [eax + 5], 0x10
je 0x1003d965
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx + 0x1c]
cmp dword [ecx], 1
jg 0x1003c6d3
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x40], ecx
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebp - 0x50], xmm0
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [ebp - 0x60], xmm1
movups xmmword [ebp - 0x70], xmm0
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x64], eax
push 0x10
push dword [ebp - 0x124]
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x9c]
mov ebx, edx
call fcn.10040dd0
add esp, 0x10
or byte [ebx + 0xa], 4
jmp 0x1003c6d3
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x28]
mov edi, dword [ecx + 0x2c]
mov dword [ebp - 0xf4], eax
inc eax
mov dword [ecx + 0x28], eax
inc edi
mov dword [ecx + 0x2c], edi
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x140], eax
dec eax
mov dword [ebp - 0x128], eax
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + ecx*8 + 0x18]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xb0], edx
mov eax, dword [edx + 0x18]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
mov byte [eax + ecx + 0x335], 0x43
mov dword [ebp - 0x120], edi
mov dword [eax + ecx + 0x338], edi
movzx ebx, byte [eax + 0x2c]
cmp ebx, 2
mov dword [ebp - 0x104], esi
jb 0x100402cc
mov eax, ebx
sub eax, dword [ebp - 0xd0]
mov edi, eax
lea eax, [eax + eax*8]
lea edx, [eax*8 + 8]
mov ecx, dword [ebp - 0x10c]
push 0
call fcn.10157570
add esp, 4
test eax, eax
je 0x100402e0
mov edx, eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe8]
lea esi, [eax + ecx*8]
add esi, 8
mov eax, edi
mov dword [ebp - 0xc0], edi
movzx eax, al
mov dword [edx + 4], eax
mov dword [edx], eax
lea edi, [edx + 8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0xc0], 2
mov dword [ebp - 0xc8], edx
jl 0x1003db11
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 4]
add eax, 8
mov dword [ebp - 0xc0], eax
add ebx, dword [ebp - 0x148]
mov eax, edx
add eax, 0x50
mov edx, dword [ebp - 0x14c]
movzx ecx, byte [edx]
lea ecx, [ecx + ecx*8]
mov esi, dword [ebp - 0xc0]
lea esi, [esi + ecx*8]
mov ecx, 0x12
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add edx, 0x60
add eax, 0x48
dec ebx
jne 0x1003daf0
xor ebx, ebx
mov eax, dword [ebp - 0x94]
test byte [eax + 0x28], 0x10
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xbc], 0
jne 0x1003db7b
mov eax, dword [ebp - 0xa0]
test byte [eax + 0x1c], 0x80
jne 0x100402eb
mov edi, dword [ebp - 0x9c]
mov esi, dword [edi + 0x2c]
inc esi
mov dword [edi + 0x2c], esi
xor eax, eax
mov ecx, dword [ebp - 0x98]
mov edx, 0x4b
push eax
mov dword [ebp - 0xf0], esi
push esi
push eax
call fcn.1002fb80
add esp, 0xc
mov eax, dword [edi + 0x2c]
inc eax
mov dword [ebp - 0xbc], eax
mov dword [edi + 0x2c], eax
mov ecx, dword [ebp - 0x98]
mov edx, 0x47
push ebx
push dword [ebp - 0x120]
push ebx
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 0x5c]
cmp eax, 2
jl 0x1003dc41
xor edi, edi
xor ebx, ebx
xor esi, esi
mov ecx, dword [ebp - 0x94]
mov ecx, dword [ecx + 0x68]
lea edx, [ecx + edi]
cmp edx, dword [ebp - 0xb0]
je 0x1003dc19
movzx edx, word [ecx + edi + 0xa]
test edx, 0x8006
jne 0x1003dc19
movzx edx, word [ecx + edi + 0xc]
test edx, 0x3fff
je 0x1003dc19
mov edx, dword [ecx + edi]
test byte [edx + 6], 0x40
jne 0x1003dc19
xor eax, eax
mov ecx, dword [ebp - 0x10c]
push eax
push eax
call fcn.10001810
add esp, 8
mov ecx, dword [ebp - 0x9c]
mov edx, esi
push eax
call fcn.10016b90
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 0x5c]
inc ebx
add edi, 0x30
cmp ebx, eax
jl 0x1003dbb4
test esi, esi
je 0x10040344
mov ecx, dword [ebp - 0x9c]
mov edx, 0x1002c
push esi
push 0
call fcn.10016a00
add esp, 8
mov ebx, eax
push str.MULTI_INDEX_OR
push 1
push dword [ebp - 0x9c]
call fcn.1002faf0
add esp, 0xc
mov ecx, dword [ebp - 0xb8]
cmp dword [ecx + 0xc], 0
mov dword [ebp - 0x11c], ebx
jle 0x1003e104
mov eax, dword [ebp - 0xa0]
add eax, 8
mov dword [ebp - 0x114], eax
xor esi, esi
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xb4], 0
mov eax, dword [ecx + 0x18]
lea ecx, [esi + esi*2]
shl ecx, 4
mov edx, dword [ebp - 0xec]
cmp dword [eax + ecx + 0x14], edx
je 0x1003dcb1
test byte [eax + ecx + 0xd], 4
je 0x10040224
add eax, ecx
mov edx, dword [eax]
test edx, edx
je 0x100401ff
xor eax, eax
mov edi, dword [ebp - 0x10c]
mov ecx, edi
push eax
push eax
call fcn.10001810
add esp, 8
mov ecx, eax
cmp byte [edi + 0x57], 0
jne 0x10040213
mov edi, ecx
test ebx, ebx
je 0x1003dce8
mov dword [ebx + 0xc], ecx
mov edi, ebx
mov dword [ebp - 0xcc], ecx
lea eax, [esi + 1]
push eax
push str.INDEX__d
push 1
mov ebx, dword [ebp - 0x9c]
push ebx
call fcn.1002faf0
sub esp, 8
mov eax, dword [ebp - 0xf4]
mov dword [esp + 0x14], eax
movaps xmm0, xmmword [0x101af3e0]
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
mov ecx, ebx
mov edi, dword [ebp - 0xc8]
mov edx, edi
call fcn.1003a780
add esp, 0x18
test eax, eax
je 0x1004022f
mov dword [ebp - 0xc0], eax
add eax, 0x2f8
mov ecx, ebx
mov edx, edi
push 0
push eax
call fcn.100416f0
add esp, 8
mov eax, dword [ebp - 0x94]
test byte [eax + 0x28], 0x10
jne 0x10040240
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 0xc]
dec eax
xor ecx, ecx
dec ecx
cmp esi, eax
cmovne ecx, esi
mov dword [ebp - 0x110], ecx
mov eax, dword [ebp - 0xa0]
test byte [eax + 0x1c], 0x80
mov eax, dword [ebp - 0x114]
jne 0x1003fc4f
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003dfb5
lea ecx, [eax + 1]
mov edx, dword [ebp - 0xc4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x87
mov edx, dword [ebp - 0xec]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp - 0xbc]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [ebp - 0x98]
mov edi, dword [eax + 0x6c]
cmp dword [eax + 0x70], edi
jle 0x1003dfdb
lea eax, [edi + 1]
mov ecx, dword [ebp - 0xc4]
mov dword [ecx], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4], 0x2f
mov edx, dword [ebp - 0xf0]
mov dword [eax + ecx*4 + 4], edx
xor edx, edx
mov dword [eax + ecx*4 + 8], edx
mov ebx, dword [ebp - 0xbc]
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], edx
mov ebx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x1003de5b
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
lea ecx, [edi + edi*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov edx, dword [ebp - 0x110]
mov dword [eax + ecx*4 + 0x10], edx
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x1003df8f
lea ecx, [eax + 1]
mov edx, dword [ebp - 0xc4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0xa
mov edx, dword [ebp - 0x120]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp - 0x128]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
test edi, edi
mov edx, dword [ebp - 0xb4]
je 0x1003dede
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x1004024d
lea eax, [edi + edi*4]
shl eax, 2
mov ecx, dword [ebp - 0xac]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx + 0x6c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ecx + 0x30]
xor edi, edi
inc edi
test al, 2
cmove edi, ebx
mov ecx, dword [ecx + 0x348]
xor ebx, ebx
test byte [ecx + 0x2d], 2
je 0x1003df1e
mov ecx, dword [ecx + 0x20]
test esi, esi
jne 0x1003df08
mov edx, ecx
jmp 0x1003df0c
cmp ecx, edx
jne 0x1003df1e
mov ecx, dword [ebp - 0xa0]
test byte [ecx + 0x1c], 0x80
jne 0x10040257
mov ebx, edx
test al, 1
mov ecx, dword [ebp - 0xc0]
je 0x1003df32
mov eax, dword [ebp - 0x94]
or byte [eax + 0x30], 1
call fcn.10031790
mov edx, dword [ebp - 0x9c]
mov eax, dword [edx + 0xe4]
xor ecx, ecx
test eax, eax
jne 0x1004026b
mov dword [edx + 0xe4], ecx
mov edx, dword [ebp - 0xcc]
test edx, edx
je 0x1003df68
mov ecx, dword [ebp - 0x10c]
call fcn.1014c9e0
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xb4], ebx
inc esi
mov ecx, dword [ebp - 0xb8]
cmp esi, dword [ecx + 0xc]
mov ebx, dword [ebp - 0x11c]
jl 0x1003dc91
jmp 0x1003e118
mov ecx, dword [ebp - 0x98]
mov edx, 0xa
push 0
push dword [ebp - 0x128]
push dword [ebp - 0x120]
call fcn.10016c40
add esp, 0xc
jmp 0x1003dea8
mov ecx, dword [ebp - 0x98]
mov edx, 0x87
push 0
push dword [ebp - 0xbc]
push dword [ebp - 0xec]
call fcn.10016c40
add esp, 0xc
jmp 0x1003dde0
mov ecx, dword [ebp - 0x98]
mov edx, 0x2f
push dword [ebp - 0xbc]
push 0
push dword [ebp - 0xf0]
call fcn.10016c40
add esp, 0xc
mov edi, eax
jmp 0x1003de2d
test al, 8
jne 0x1004034b
xor eax, eax
mov esi, dword [ebp - 0x98]
mov ecx, esi
mov edx, 0xf
push eax
push eax
push eax
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0xb0], eax
mov ecx, esi
mov edx, 0xa
xor eax, eax
push eax
mov eax, dword [ebp - 0xe4]
push dword [eax + ebx*8 + 0x20]
push dword [eax + ebx*8 + 0x24]
call fcn.1002fb80
add esp, 0xc
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x10040373
mov eax, dword [ebp - 0xb0]
lea eax, [eax + eax*4]
shl eax, 2
mov ecx, dword [ebp - 0xac]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx + 0x6c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
jmp 0x1003be11
mov ecx, dword [ebp - 0x98]
mov edx, 0x32
push 0
push dword [ebp - 0x104]
push dword [ebp - 0x130]
call fcn.10016c40
add esp, 0xc
jmp 0x1003d13a
mov ecx, dword [ebp - 0x98]
mov edx, 0x47
push 0
push eax
push 1
call fcn.10016c40
add esp, 0xc
jmp 0x1003d370
xor edi, edi
mov ecx, dword [ebp - 0x98]
mov edx, 0x47
push edi
push eax
push edi
call fcn.10016c40
add esp, 0xc
jmp 0x1003cbb2
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xa8], 0
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0xe4]
test eax, eax
mov edx, 0
jne 0x1004037d
mov dword [ecx + 0xe4], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xb4]
mov dword [eax + ecx + 0x340], edx
test edx, edx
je 0x1003e161
mov edx, dword [ebp - 0xf4]
mov dword [eax + ecx + 0x300], edx
test ebx, ebx
je 0x1003e179
mov dword [ebx + 0xc], 0
mov ecx, dword [ebp - 0x10c]
mov edx, ebx
call fcn.1014c9e0
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [ecx + 0x57], 0
jne 0x100403aa
mov ecx, dword [ebp - 0x100]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [ebp - 0xac]
add ecx, dword [edx]
mov ebx, dword [ebp - 0xa8]
mov dword [ecx + 4], eax
xor eax, eax
mov esi, dword [ebp - 0x98]
mov ecx, esi
mov edx, 9
push eax
mov edi, dword [ebp - 0x104]
push dword [edi - 4]
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov esi, dword [ebp - 0x140]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x100403b4
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov esi, dword [ebp - 0xc8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa4]
mov dword [ecx + edx + 0x33c], eax
cmp byte [ecx + 0x2c], 2
jb 0x1003e220
mov ecx, dword [ebp - 0x10c]
mov edx, esi
call fcn.1014d210
test ebx, ebx
je 0x100403ce
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
jmp 0x1003c842
mov ecx, dword [edx + 4]
mov ecx, dword [ecx + 0x18]
lea edi, [edi + edi*2]
shl edi, 4
dec byte [ecx + edi + 0xe]
mov ebx, dword [ebp - 0xc8]
jne 0x1003e2c2
lea edx, [ecx + edi]
add ecx, edi
add ecx, 0xa
mov dword [ebp - 0x118], ecx
movzx ecx, word [ecx]
test cl, 4
je 0x1003d19a
mov edi, dword [ebp - 0xb4]
xor ecx, ecx
jmp 0x1003d207
cmp edx, 0x75
je 0x1003e54f
cmp edx, 0x99
je 0x1003d609
cmp edx, 0x9a
mov edx, dword [ebp - 0xcc]
jne 0x1003d597
xor edx, edx
test ecx, ecx
sete dl
jmp 0x1003e505
mov edi, dword [edx]
test byte [edi + 4], 1
jne 0x1003d1af
xor ecx, ecx
jmp 0x1003d1fb
mov ecx, dword [ebp - 0x98]
mov edx, 0xb
push eax
push 0
push edi
call fcn.10016c40
add esp, 0xc
jmp 0x1003d8cf
mov ecx, dword [ebp - 0x98]
mov edx, 0xc
push 0
push dword [ebp - 0xa0]
push edi
call fcn.10016c40
add esp, 0xc
jmp 0x1003d916
mov cl, byte [eax + 2]
jmp 0x1003d0d2
cmp al, 0x43
mov edx, dword [ebp - 0xcc]
jl 0x1003d597
mov eax, dword [ebp - 0x13c]
movzx edx, word [eax + 0x20]
shr edx, 0xf
test edx, edx
mov edx, dword [ebp - 0xcc]
je 0x1003d597
jmp 0x1003d58d
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0xcc]
jmp 0x1003d0ae
test ecx, ecx
sete cl
cmp al, 0x42
sete al
and al, cl
movzx edx, al
jmp 0x1003e505
mov edx, dword [ebp - 0x13c]
mov dl, byte [edx + 2]
jmp 0x1003d5da
xor ebx, ebx
inc ebx
cmp dl, 0xad
cmove ecx, ebx
mov edx, dword [ebp - 0x13c]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x13c], edx
jmp 0x1003d5b4
cmp dword [ebp - 0x94], 0
je 0x1003e5fd
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 0x9c]
mov dword [ecx + 0x8c], eax
mov ecx, dword [ebp - 0xfc]
call fcn.10032500
xor esi, esi
jmp 0x1003c985
mov ecx, dword [ebp - 0xcc]
test cl, cl
sete al
and byte [ebp - 0xf0], al
movzx eax, cl
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x110]
add eax, ebx
xor esi, esi
mov ecx, dword [ebp - 0x98]
mov edx, 0x4b
push esi
push eax
push esi
mov esi, dword [ebp - 0x128]
call fcn.1002fb80
mov ecx, dword [ebp - 0xe0]
add esp, 0xc
lea edx, [ebx + 1]
mov byte [ebp - 0x114], 1
jmp 0x1003c1a8
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [eax + ecx + 0x324]
test edx, edx
je 0x1003c61e
mov eax, edx
shr eax, 1
mov dword [ebp - 0xe8], eax
and edx, 1
or edx, 0x10
mov ecx, dword [ebp - 0x98]
xor eax, eax
push eax
xor eax, eax
push eax
push dword [ebp - 0xe8]
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0xe8], eax
push 0x10
push dword [ebp - 0x124]
push ebx
push dword [ebp - 0x9c]
call fcn.10040dd0
add esp, 0x10
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x1003c635
mov edx, eax
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
mov eax, 0x101f2320
cmp byte [ecx + 0x57], 0
jne 0x1003e6ec
lea eax, [edx + edx*4]
shl eax, 2
mov ecx, dword [ebp - 0xac]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx + 0x6c]
mov dword [eax + 8], ecx
jmp 0x1003c635
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, 0x24
push 0
call fcn.10157570
add esp, 4
test eax, eax
je 0x1003f409
mov edx, eax
mov ebx, eax
mov ecx, dword [ebp - 0x94]
mov eax, dword [ecx + 0x44]
mov dword [edx], eax
xor eax, eax
mov dword [edx + 0xc], eax
mov dword [edx + 8], 0x14
mov dword [ecx + 0x44], edx
add edx, 0x10
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xa0], edx
mov dword [eax + 0x38], edx
mov edi, dword [ebp - 0x9c]
mov eax, dword [edi + 0x28]
lea ecx, [eax + 1]
mov dword [edi + 0x28], ecx
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x2c]
inc eax
mov dword [edi + 0x2c], eax
mov dword [ebx + 0x14], eax
mov ecx, dword [ebp - 0x98]
mov edx, 0x4d
xor esi, esi
push esi
push eax
push 0x10000
call fcn.1002fb80
add esp, 0xc
mov eax, dword [edi + 0x2c]
inc eax
mov dword [edi + 0x2c], eax
mov dword [ebx + 0x18], eax
mov ecx, dword [ebp - 0x98]
mov edx, 0x4b
xor edi, edi
push edi
push eax
push edi
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebp - 0xa4]
test byte [eax + 0x1c], 0x80
jne 0x1003f556
mov ecx, dword [ebp - 0x98]
mov edx, 0x76
xor edi, edi
push edi
push 1
mov eax, dword [ebp - 0xa0]
push dword [eax]
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax]
xor edx, edx
inc edx
push edi
call fcn.10040a00
add esp, 4
test eax, eax
je 0x1003f5a8
mov dword [eax + 0x14], 0
mov ecx, dword [eax + 0x10]
mov byte [ecx], 0
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx]
cmp byte [ecx + 0x57], 0
je 0x1003fc2e
cmp dword [ecx + 0x208], 0
jne 0x1003f5a8
dec dword [eax]
jne 0x1003f5a8
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.1014c8d0
jmp 0x1003f5a8
bt edi, 0xe
jb 0x1003f20e
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xd0]
push dword [ebp - 0x108]
push dword [ebp - 0xf8]
push dword [ebp - 0xd4]
call fcn.10174a80
add esp, 0xc
jmp 0x1003f249
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0xd4]
movzx ecx, byte [ecx + 0x3c]
lea ecx, [ecx + ecx*8]
mov eax, dword [eax + ecx*8 + 0x18]
mov dword [ebp - 0xb8], eax
test byte [eax + 0x1c], 0x80
jne 0x1003f26a
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 0x1c]
cmp eax, 2
jge 0x1003f6a7
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
mov dword [ebp - 0xa0], edx
add eax, 2
mov dword [ecx + 0x2c], eax
jmp 0x1003f6c2
xor eax, eax
mov edi, dword [ebp - 0x98]
mov ecx, edi
mov edx, 0x4a
push eax
push dword [esi + 8]
push eax
call fcn.1002fb80
add esp, 0xc
mov eax, dword [edi + 0x6c]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x9c]
inc byte [eax + 0x1a]
jmp 0x1003d37a
mov eax, dword [ebp - 0xb0]
movzx edi, word [eax + 0x30]
lea edx, [edi + 2]
mov ecx, dword [ebp - 0x9c]
call fcn.10052fb0
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x104], esi
mov eax, dword [esi - 4]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xa0], edi
test edi, edi
je 0x1003ea5a
mov eax, dword [ebp - 0xbc]
add eax, 2
mov dword [ebp - 0xa8], eax
xor ebx, ebx
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x38]
mov ecx, ebx
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x1003ea14
mov eax, dword [ebp - 0xa8]
mov ecx, ebx
add eax, ebx
mov dword [ebp - 0xc0], eax
test byte [esi + 0xc], 1
jne 0x1003e9b4
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, dword [ebp - 0x9c]
push 1
push dword [ebp - 0xc0]
call fcn.10049760
add esp, 8
cmp byte [esi + 0xf], 0x4a
jne 0x1003ea14
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x1c], 2
je 0x1003ea14
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 0x10]
xor esi, esi
mov ecx, dword [ebp - 0x98]
mov edx, 0x47
push esi
push dword [eax + 0xc]
jmp 0x1003ea0b
xor eax, eax
inc eax
mov ecx, ebx
shl eax, cl
xor edx, edx
cmp ebx, 0x20
cmovb edx, eax
mov eax, dword [ebp - 0xb0]
test dword [eax + 0x28], edx
je 0x1003ea27
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0xb4], eax
mov edi, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x28], eax
inc edi
mov dword [ecx + 0x2c], edi
mov edx, dword [esi]
mov esi, dword [ebp - 0xb4]
push esi
call fcn.10060810
add esp, 4
mov ecx, dword [ebp - 0x98]
mov edx, 0xae
push edi
push dword [ebp - 0xc0]
push esi
call fcn.1002fb80
add esp, 0xc
mov eax, ebx
inc eax
mov ebx, eax
cmp dword [ebp - 0xa0], eax
jne 0x1003e93b
jmp 0x1003ea5a
mov ecx, dword [ebp - 0x9c]
mov edx, esi
push dword [ebp - 0xc0]
push dword [ebp - 0xb8]
push ebx
push dword [ebp - 0xd4]
call fcn.100423b0
add esp, 0x10
mov eax, dword [ebp - 0x104]
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
jmp 0x1003ea14
xor eax, eax
mov ebx, dword [ebp - 0x98]
mov ecx, ebx
mov edx, 0x47
push eax
mov edi, dword [ebp - 0xbc]
push edi
mov esi, dword [ebp - 0xb0]
push dword [esi + 0x18]
call fcn.1002fb80
add esp, 0xc
lea eax, [edi + 1]
mov ecx, ebx
mov edx, 0x47
xor edi, edi
push edi
push eax
push dword [ebp - 0xa0]
call fcn.1002fb80
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0xb8], ecx
and eax, 1
cmp eax, 1
mov edi, 0
sbb edi, edi
or edi, 0xfffffffa
mov ecx, ebx
mov edx, 6
push dword [ebp - 0xbc]
push dword [ebp - 0xc8]
push dword [ebp - 0xec]
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, eax
push edi
push dword [ebp - 0xb8]
call fcn.1003a120
add esp, 8
and byte [esi + 0x1c], 0xfe
mov eax, dword [ebp - 0x10c]
cmp byte [eax + 0x57], 0
je 0x1003eb0b
mov eax, dword [ebp - 0xb0]
mov dword [eax + 0x24], 0
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xec]
mov dword [edx + esi + 0x338], eax
cmp byte [edx + 0x2e], 0
mov eax, 0x3f
mov ecx, 0xb8
cmove ecx, eax
mov byte [edx + esi + 0x335], cl
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov dword [edx + esi + 0x33c], eax
cmp dword [ebp - 0xa0], 0
mov edi, 0
je 0x1003c560
lea eax, [edx + esi]
add eax, 0x340
mov dword [ebp - 0xc8], eax
add dword [ebp - 0xbc], 2
xor ebx, ebx
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x38]
mov ecx, ebx
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0xb8], eax
cmp ebx, 0xf
ja 0x1003ebb1
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x22]
mov ecx, ebx
bt eax, ebx
jae 0x1003ebb1
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xb8]
call fcn.10176810
jmp 0x1003ebd7
mov eax, dword [ebp - 0xb8]
test byte [eax + 0xc], 1
je 0x1003ebd7
xor eax, eax
inc eax
mov ecx, ebx
shl eax, cl
xor edx, edx
cmp ebx, 0x20
cmovb edx, eax
mov eax, dword [ebp - 0xb0]
test dword [eax + 0x28], edx
je 0x1003ebf7
mov eax, ebx
inc eax
xor edi, edi
mov ebx, eax
cmp eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
jne 0x1003eb74
jmp 0x1003c560
mov eax, dword [ebp - 0x10c]
cmp byte [eax + 0x57], 0
jne 0x1003ebd7
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
test ecx, ecx
jle 0x1003ecae
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa4]
add eax, edx
add eax, 0x344
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
mov al, byte [eax + 0x57]
mov byte [ebp - 0xc0], al
mov eax, dword [ebp - 0xbc]
mov edx, ebx
add eax, ebx
mov dword [ebp - 0xa8], eax
mov edi, 4
mov eax, 0x101f2320
cmp byte [ebp - 0xc0], 0
jne 0x1003ec79
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax]
mov eax, dword [eax + edi]
lea eax, [eax + eax*4]
shl eax, 2
mov edx, dword [ebp - 0xac]
add eax, dword [edx]
movzx edx, byte [eax]
cmp edx, 0x87
je 0x1003ec99
cmp edx, 0x5e
jne 0x1003eca8
mov esi, dword [ebp - 0xa8]
cmp dword [eax + 0xc], esi
jne 0x1003eca8
jmp 0x1003ed60
mov esi, dword [ebp - 0xa8]
cmp dword [eax + 8], esi
je 0x1003ed65
add edi, 0x14
dec ecx
jne 0x1003ec52
xor eax, eax
mov ecx, dword [ebp - 0x9c]
mov edx, 0x35
push eax
push eax
call fcn.10016a00
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x10c]
cmp byte [eax + 0x57], 0
je 0x1003ecdc
test esi, esi
jne 0x1003ed4e
jmp 0x1003ebd7
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0x1c]
mov eax, dword [eax + 0xc]
test ecx, ecx
jle 0x1003ecf8
mov eax, dword [eax + 0x14]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + ecx*4 - 0xc]
mov dword [esi + 0xc], eax
xor eax, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x10c]
mov edx, 0xb0
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.100383a0
add esp, 8
mov dword [esi + 0x10], eax
test eax, eax
je 0x1003ed47
mov ecx, dword [ebp - 0xbc]
add ecx, ebx
mov dword [eax + 0x1c], ecx
push 0x10
mov eax, dword [ebp - 0xd8]
push dword [eax - 0x40]
push esi
push dword [ebp - 0x9c]
call fcn.10040dd0
add esp, 0x10
mov dword [esi + 0xc], 0
mov ecx, dword [ebp - 0x10c]
mov edx, esi
call fcn.1014c9e0
jmp 0x1003ebd7
mov edi, dword [eax + 8]
jmp 0x1003ed74
mov edi, dword [ebp - 0xa8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x98]
push dword [ebp - 0xa8]
push edi
push dword [eax + 4]
call fcn.1002fb80
add esp, 0xc
jmp 0x1003ecae
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x34]
xor eax, eax
mov dword [ebp - 0xdc], 0
test ecx, ecx
je 0x1003f510
mov edx, dword [ebp - 0xfc]
cmp dword [ecx], edx
je 0x1003f50a
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x1003edae
mov dword [ebp - 0xdc], 0
jmp 0x1003f510
xor ebx, ebx
mov ecx, 0
mov edx, 0
test al, 0x20
je 0x1003edf0
mov ecx, dword [ebp - 0xb0]
mov ecx, dword [ecx + 0x38]
mov ecx, dword [ecx]
xor edx, edx
inc edx
test al, 0x10
je 0x1003ee00
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + edx*4]
cmp dword [ebp - 0xb8], 0
mov esi, ecx
cmove esi, ebx
cmove ebx, ecx
test ebx, ebx
je 0x1003f44d
mov eax, dword [ebx]
mov dword [ebp - 0xb0], eax
mov edx, dword [eax + 0x10]
mov al, byte [edx]
cmp al, 0xb0
jne 0x1003ee2b
mov al, byte [edx + 2]
cmp al, 0x8a
je 0x1003f906
movzx eax, al
cmp eax, 0xb1
jne 0x1003f917
lea eax, [edx + 0x14]
jmp 0x1003f90c
mov ebx, edx
movzx eax, word [esi + 0xa]
jmp 0x1003c60a
xor eax, eax
dec eax
mov ecx, dword [ebp - 0x94]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x48], eax
jmp 0x1003b888
mov ecx, dword [ebp - 0xe8]
call fcn.1014d210
mov dword [esi + 0x38], ebx
mov word [esi + 0x34], 3
jmp 0x1003b828
cmp dword [ecx + 0x208], 0
jne 0x1003bc1c
dec dword [eax]
jne 0x1003bc1c
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.1014c8d0
jmp 0x1003bc1c
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax + 0x2c]
inc edx
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], edx
mov dword [eax + ecx + 0x31c], edx
mov eax, dword [ebp - 0xd4]
cmp dword [eax], 0
je 0x1003eef9
xor eax, eax
mov ecx, dword [ebp - 0x98]
mov edx, 0x47
push eax
push dword [ebp - 0xb4]
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa4]
mov dword [ecx + edx + 0x320], eax
xor esi, esi
inc esi
mov al, 1
mov dword [ebp - 0xcc], eax
mov ebx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xf4]
jmp 0x1003c076
mov ecx, dword [ebp - 0x98]
mov edx, 0x47
push 0
push edi
push 1
call fcn.1002fb80
add esp, 0xc
jmp 0x1003c1fd
mov esi, edx
mov edi, dword [ebp - 0x98]
mov ecx, edi
mov edx, 0x40
push dword [ebp - 0xa8]
push dword [ebp - 0x104]
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x1003ef98
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0xc8]
mov dword [ecx + eax*4 + 0x10], edx
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x94]
push dword [ebp - 0x108]
push dword [ebp - 0xf8]
push dword [ebp - 0x104]
push dword [ebp - 0xd0]
call fcn.101768a0
add esp, 0x10
mov edi, dword [ebp - 0xb4]
mov edx, esi
jmp 0x1003c221
mov edi, dword [ebp - 0x98]
mov eax, dword [edi + 0x6c]
add eax, 2
xor esi, esi
mov ecx, edi
mov edx, 9
push esi
push eax
push esi
call fcn.1002fb80
add esp, 0xc
xor eax, eax
cmp dword [ebp - 0xcc], 2
setge al
mov ecx, dword [ebp - 0xb8]
movzx edx, byte [ecx + eax*4 + 0x101b46c2]
mov ecx, edi
push dword [ebp - 0xa8]
push dword [ebp - 0x104]
push dword [ebp - 0xc0]
call fcn.1002fb80
mov edx, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, dword [edi]
mov edi, dword [ebp - 0xb4]
cmp byte [ecx + 0x57], 0
jne 0x1003c305
add edx, dword [ebp - 0x114]
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x1003c305
test edi, edi
jne 0x1003f157
mov eax, dword [ebp - 0x110]
add eax, dword [ebp - 0xc8]
xor esi, esi
mov ecx, dword [ebp - 0x98]
mov edx, 0x4b
push esi
push eax
mov dword [ebp - 0x100], 0
push esi
call fcn.1002fb80
add esp, 0xc
mov ebx, dword [ebp - 0xc8]
lea esi, [ebx + 1]
jmp 0x1003cff1
mov dword [ebp - 0xdc], 0x70
mov eax, dword [ebp - 0xfc]
test byte [eax + 0x53], 1
jne 0x1003bb77
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xa0]
lea eax, [eax + ecx*8]
add eax, 8
mov ecx, dword [ebp - 0x9c]
mov edx, esi
push eax
push edi
call fcn.10173f20
add esp, 8
jmp 0x1003bb77
mov esi, dword [ebp - 0xd4]
movzx eax, byte [esi + 0x3c]
lea eax, [eax + eax*8]
mov ecx, dword [ebp - 0xe4]
lea eax, [ecx + eax*8]
add eax, 8
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x138]
push esi
push dword [ebp - 0x108]
push dword [ebp - 0xf8]
push eax
call fcn.101740d0
add esp, 0x10
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x57], 0
mov esi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xd4]
je 0x1003be2b
jmp 0x1003e5dd
mov eax, dword [ebp - 0xb8]
add eax, 8
mov ebx, dword [eax]
mov ecx, dword [ebx + 0x38]
and ecx, 3
lea eax, [ebx + 0x14]
cmp ecx, 2
jne 0x1003f273
movzx esi, word [ebx + 0x32]
lea edx, [esi + 1]
mov ecx, dword [ebp - 0x9c]
call fcn.10052fb0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xf8], esi
test esi, esi
je 0x1003f8f7
mov eax, dword [ebp - 0xf8]
neg eax
mov dword [ebp - 0xe8], eax
xor esi, esi
inc esi
mov eax, dword [ebx + 4]
movsx eax, word [eax + esi*2 - 2]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xa0]
add eax, esi
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xb8]
push eax
push dword [ebp - 0xb0]
push dword [ebp - 0xec]
call fcn.10035980
add esp, 0xc
mov eax, dword [ebp - 0xe8]
add eax, esi
inc eax
inc esi
cmp eax, 1
jne 0x1003f2ba
jmp 0x1003f6f0
mov eax, dword [ebp - 0xb0]
mov dword [eax + 0x38], 0
jmp 0x1003f5c0
push dword [ebp - 0xd8]
mov eax, dword [ebp - 0xa0]
push dword [eax]
push str.too_many_arguments_on__s_____max__d
push dword [ebp - 0x9c]
call fcn.100463a0
add esp, 0x10
mov esi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xb8]
jmp 0x1003aa30
xor eax, eax
cmp dword [ebp - 0xb8], 0
sete al
lea edx, [eax*4 + 0x20]
mov ecx, dword [ebp - 0x98]
push 0
push edi
push dword [ebp - 0xec]
call fcn.1002fb80
add esp, 0xc
test esi, esi
je 0x1003f4cd
mov edi, dword [esi]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov edx, dword [edi + 0x10]
push 1
mov dword [ebp - 0xb0], eax
push eax
call fcn.10049760
add esp, 8
mov eax, dword [edi + 0x10]
mov cl, byte [eax]
mov edx, ecx
cmp cl, 0xb0
jne 0x1003f4ad
mov dl, byte [eax + 2]
cmp dl, 0x8a
je 0x1003f99d
movzx edx, dl
cmp edx, 0xb1
jne 0x1003f9aa
lea edx, [eax + 0x14]
jmp 0x1003f9a3
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xb8]
xor cl, 0x27
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa4]
mov byte [edx + esi + 0x335], cl
mov ecx, dword [ebp - 0xec]
mov dword [edx + esi + 0x338], ecx
mov dword [edx + esi + 0x33c], eax
jmp 0x1003c842
mov dword [ebp - 0xdc], ecx
mov edi, dword [ebp - 0x98]
mov ecx, edi
mov edx, 0xad
push eax
push eax
mov eax, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xa0]
push dword [eax + esi*8 + 0x34]
call fcn.1002fb80
add esp, 0xc
mov ecx, edi
mov edx, eax
push 0xfffffffffffffff5
push dword [ebp - 0xdc]
call fcn.1003a120
add esp, 8
mov edi, dword [ebp - 0xd4]
jmp 0x1003bb0e
add dword [ebp - 0xa4], 8
mov eax, dword [ebp - 0xa4]
mov ebx, dword [eax]
mov eax, dword [ebx + 0x38]
and eax, 3
lea ecx, [ebx + 0x14]
mov dword [ebp - 0xa4], ecx
cmp eax, 2
jne 0x1003f55d
movzx eax, word [ebx + 0x32]
mov ecx, dword [ebp - 0x98]
mov edx, 0x76
push 0
push eax
mov eax, dword [ebp - 0xa0]
push dword [eax]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebp - 0x9c]
mov edx, ebx
call fcn.1016f710
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x2c], 0xbf
mov eax, dword [ebp - 0x94]
mov byte [eax + 0x2d], 0
mov byte [eax + 0x2f], 3
mov edi, dword [ebp - 0xd4]
jmp 0x1003bcc6
mov dword [ebp - 0xf0], 0
cmp dword [ebp - 0xf4], 0
je 0x1003c319
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xbc], eax
jmp 0x1003ce2b
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 8]
movsx eax, word [eax]
add eax, 9
mov ecx, 0x66666667
imul ecx
mov eax, edx
mov ecx, edx
shr ecx, 0x1f
sar eax, 2
add eax, ecx
xor edi, edi
mov ecx, dword [ebp - 0x98]
mov edx, 0x7c
push edi
push edi
push eax
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0xf0], eax
cmp dword [ebp - 0xbc], 0
je 0x1003f69c
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
test eax, eax
jle 0x1003f667
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x1003f68f
mov ecx, dword [ebp - 0xf0]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [ebp - 0xac]
add ecx, dword [edx]
mov dword [ecx + 8], eax
mov dword [ebp - 0xf0], 0
mov edi, dword [ebp - 0xb4]
jmp 0x1003c26c
mov edx, dword [ebp - 0x9c]
mov ecx, dword [edx + 0x20]
mov dword [ebp - 0xa0], ecx
add ecx, 2
mov dword [edx + 0x20], ecx
add eax, 0xfffffffe
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0xa0]
inc eax
mov ecx, dword [ebp - 0x98]
mov edx, 0x87
push 0
push eax
mov eax, dword [ebp - 0xc0]
push dword [eax]
call fcn.1002fb80
add esp, 0xc
xor eax, eax
inc eax
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xa0]
inc eax
mov ebx, dword [ebp - 0x98]
mov ecx, ebx
mov edx, 0x1d
mov dword [ebp - 0xb0], eax
push eax
push 0
push dword [edi]
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0xb8], eax
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
jne 0x1003f745
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xb8]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov edx, dword [ebp - 0xf8]
mov dword [eax + ecx*4 + 0x10], edx
mov ebx, dword [ebp - 0x98]
mov ecx, ebx
mov edx, 0x61
push dword [ebp - 0xa0]
push dword [ebp - 0xf8]
mov esi, dword [ebp - 0xb0]
push esi
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, 0x8a
push esi
push dword [ebp - 0xa0]
push dword [edi]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x1003f7a7
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0xf8]
mov dword [ecx + eax*4 + 0x10], edx
mov ebx, dword [ebp - 0x98]
mov ecx, ebx
mov edx, 0xb4
push dword [ebp - 0xb0]
push 0
push dword [edi + 4]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x1003f7e9
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0xf8]
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
test eax, eax
jle 0x1003f80f
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x1003f836
mov ecx, dword [ebp - 0xb8]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [ebp - 0xac]
add ecx, dword [edx]
mov dword [ecx + 8], eax
cmp dword [ebp - 0xf8], 0
je 0x1003f892
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xf8]
cmp dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa4]
jg 0x1003c71c
mov ecx, dword [ebp - 0xf8]
inc ecx
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x150]
mov ecx, dword [ebp - 0xa0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa4]
jmp 0x1003c71c
cmp dword [ebp - 0xa0], 0
mov ecx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa4]
je 0x1003c71c
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x1003c71c
mov ecx, eax
inc cl
mov edx, dword [ebp - 0x9c]
mov byte [edx + 0x13], cl
lea eax, [edx + eax*4]
add eax, 0xa0
jmp 0x1003f879
mov ecx, dword [ebp - 0x9c]
mov edx, ebx
mov eax, dword [ebp - 0xa4]
push dword [eax]
push 0
push dword [eax + 0x14]
call fcn.10046570
add esp, 0xc
jmp 0x1003bb0e
mov dword [ebp - 0xf8], 0
jmp 0x1003f6f0
mov eax, dword [edx + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 2
jge 0x1003f9f8
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0x70]
push eax
call fcn.10041210
add esp, 4
mov edi, eax
mov ecx, dword [ebp - 0xd4]
mov edx, ebx
call fcn.10176810
mov eax, dword [ebp - 0xb0]
movzx eax, byte [eax]
add eax, 0xffffffca
mov ebx, dword [ebp - 0x70]
movzx edx, byte [eax + 0x101b46bc]
mov ecx, dword [ebp - 0x98]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xec]
call fcn.1002fb80
add esp, 0xc
test ebx, ebx
je 0x1003f477
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x1003f477
mov ecx, eax
inc cl
mov edx, dword [ebp - 0x9c]
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0xa0], ebx
jmp 0x1003f477
mov edx, dword [eax + 0x14]
add edx, 0x1c
mov edx, dword [edx]
cmp dword [edx], 1
jg 0x1003f9ca
movzx edx, byte [edi]
cmp edx, 0x38
je 0x1003f9b7
cmp edx, 0x36
jne 0x1003f9ca
xor edx, edx
cmp dword [ebp - 0xb8], 0
sete dl
add edx, edx
add edx, 0x37
jmp 0x1003f9d5
mov edx, dword [ebp - 0xb8]
add edx, edx
add edx, 0x36
mov dword [ebp - 0xc0], edx
cmp cl, 0xb0
jne 0x1003f9e3
mov cl, byte [eax + 2]
cmp cl, 0x8a
je 0x1003fa4a
movzx ecx, cl
cmp ecx, 0xb1
jne 0x1003fa57
add eax, 0x14
jmp 0x1003fa50
mov eax, dword [ebp - 0x9c]
mov al, byte [eax + 0x13]
test al, al
je 0x1003fd29
dec al
mov ecx, dword [ebp - 0x9c]
mov byte [ecx + 0x13], al
movzx eax, al
mov ebx, dword [ecx + eax*4 + 0xa0]
mov edi, dword [ebp - 0xb0]
mov edx, dword [edi + 0x10]
mov ecx, dword [ebp - 0x9c]
push 1
push ebx
call fcn.10049760
add esp, 8
mov al, byte [edi]
inc al
and al, 2
or al, 1
movzx eax, al
mov edi, ebx
jmp 0x1003f947
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x1003fa64
mov ecx, dword [ebp - 0xd4]
mov edx, esi
call fcn.10176810
mov ebx, dword [ebp - 0x98]
mov edi, dword [ebx + 0x6c]
mov eax, dword [ebp - 0xb8]
xor al, 0x27
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa4]
mov byte [ecx + edx + 0x335], al
mov esi, dword [ebp - 0xec]
mov dword [ecx + edx + 0x338], esi
mov dword [ecx + edx + 0x33c], edi
mov eax, dword [ebp - 0x9c]
mov edi, dword [eax + 0x2c]
inc edi
mov dword [eax + 0x2c], edi
mov ecx, ebx
mov edx, 0x87
push 0
push edi
push esi
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, dword [ebp - 0xc0]
push edi
push dword [ebp - 0xa0]
push dword [ebp - 0xb0]
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x1003e228
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x53
jmp 0x1003e228
mov dl, byte [edx + 0x101af7e8]
cmp dl, byte [eax + 0x101af7e8]
je 0x1003b13a
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd4]
inc eax
cmp eax, dword [ebp - 0xd8]
mov esi, 0xffffffff
jl 0x1003b0ab
lea edi, [ebp - 0x70]
mov edx, dword [ebp - 0xd0]
jmp 0x1003b179
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa4]
add eax, ecx
add eax, 0x32c
mov dword [ebp - 0xb0], eax
mov ebx, dword [ebp - 0x98]
mov ecx, ebx
mov edx, 0xd
push 0
push edi
push esi
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, 0x40
push esi
push edi
mov eax, dword [ebp - 0xb0]
push dword [eax]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x1003fba9
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], 1
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x94]
push dword [ebp - 0x108]
push dword [ebp - 0xf8]
push edi
push dword [ebp - 0xd0]
call fcn.101768a0
add esp, 0x10
jmp 0x1003c8e5
bt edi, 0x13
jb 0x1003fd84
add esi, 0xc
jmp 0x1003fd8a
cmp edi, 0xa9
je 0x1003afb2
jmp 0x1003afc8
test byte [esi + 0x1c], 1
je 0x1003ca3d
push dword [esi + 0x24]
call sym.nss3.dll_sqlite3_free
add esp, 4
and byte [esi + 0x1c], 0xfe
mov dword [esi + 0x24], 0
jmp 0x1003b836
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
jmp 0x1003bc80
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0xc4]
mov edx, dword [edx]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf8
mov dword [ecx + edx*4 - 4], eax
jmp 0x1003f5a8
mov eax, dword [eax]
mov ecx, dword [eax + 0x38]
and ecx, 3
mov ebx, eax
add eax, 0x14
cmp ecx, 2
jne 0x1003fc4f
movzx edi, word [ebx + 0x32]
mov ecx, dword [ebp - 0x9c]
mov edx, edi
call fcn.10052fb0
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x118], edi
test edi, edi
je 0x1003fcc3
xor edi, edi
mov eax, dword [ebx + 4]
movsx eax, word [eax + edi*2]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0xe0]
add eax, edi
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xa0]
push eax
push dword [ebp - 0x134]
push dword [ebp - 0xec]
call fcn.10035980
add esp, 0xc
inc edi
cmp dword [ebp - 0x118], edi
jne 0x1003fc84
cmp dword [ebp - 0x110], 0
je 0x10040429
mov ebx, dword [ebp - 0x98]
mov ecx, ebx
mov edx, 0x1d
push dword [ebp - 0xe0]
push 0
push dword [ebp - 0xf0]
call fcn.1002fb80
add esp, 0xc
mov edi, eax
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
jne 0x1003fd17
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
lea ecx, [edi + edi*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov edx, dword [ebp - 0x118]
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [ebp - 0x110], 0
jns 0x1004042b
jmp 0x100404bc
mov eax, dword [ebp - 0x9c]
mov ebx, dword [eax + 0x2c]
inc ebx
mov dword [eax + 0x2c], ebx
jmp 0x1003fa1e
xor edx, edx
xor edi, edi
jmp 0x1003ad48
xor eax, eax
xor edx, edx
jmp 0x1003cbd7
mov eax, dword [ebp - 0x94]
add eax, 0x2d
mov ecx, dword [ebp - 0xc4]
mov cl, byte [ecx]
mov byte [eax], cl
jmp 0x1003af0f
mov eax, dword [ebp - 0xfc]
test byte [eax + 0x50], 0x10
jne 0x1003af1d
mov eax, dword [ebp - 0x94]
mov byte [eax + 0x2f], 1
jmp 0x1003af1d
mov esi, dword [esi + 0x14]
add esi, 8
mov esi, dword [esi]
jmp 0x1003af90
and dword [ebp - 0xa4], 0xfeff
mov eax, dword [ebp - 0x94]
and byte [eax + 0x29], 0xfe
jmp 0x1003aac7
xor ecx, ecx
dec ecx
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0x108], ecx
jmp 0x1003cc37
lea edi, [ebp - 0x70]
jmp 0x1003b179
bt esi, 0x13
jb 0x10040161
add ecx, 0xc
jmp 0x10040167
cmp esi, 0xa9
je 0x1003b0e3
jmp 0x1003fb18
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
jmp 0x1003b122
xor ecx, ecx
cmp ax, 0xffff
sete cl
jmp 0x1003b163
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa4]
mov dword [ecx + edx + 0x33c], eax
jmp 0x1003ce35
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
mov eax, 0x101f2320
cmp byte [ecx + 0x57], 0
jne 0x1003fe53
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
lea eax, [eax + eax*4]
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov edx, dword [ebp - 0x94]
mov edi, dword [ebp - 0xa4]
mov ecx, dword [edx + edi + 0x324]
shr ecx, 1
mov dword [eax + 0xc], ecx
movzx ecx, word [edx + edi + 0x324]
and ecx, 1
mov word [eax + 2], cx
mov eax, dword [ebp - 0xcc]
movzx eax, word [eax]
mov ebx, dword [ebp - 0xc8]
jmp 0x1003ce7d
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
mov eax, 0x101f2320
cmp byte [ecx + 0x57], 0
jne 0x1003ff67
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
lea eax, [eax + eax*4]
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov edx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa4]
mov ecx, dword [edx + ebx + 0x324]
shr ecx, 1
mov dword [eax + 0xc], ecx
movzx ecx, word [edx + ebx + 0x324]
and ecx, 1
mov word [eax + 2], cx
mov eax, dword [ebp - 0x118]
movzx eax, word [eax]
mov ebx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0x128]
jmp 0x1003d09a
mov eax, dword [ebp - 0xe0]
mov al, byte [eax + 2]
jmp 0x1003d162
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov dword [ebp - 0xe0], eax
jmp 0x1003ffd1
add dword [ebp - 0xe0], 0x14
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax]
cmp dword [eax], 1
mov ebx, dword [ebp - 0xc8]
mov esi, dword [ebp - 0x128]
mov edx, dword [ebp - 0xcc]
jle 0x1003d180
mov byte [ebp - 0xf0], 1
xor ecx, ecx
mov edi, dword [ebp - 0xb4]
jmp 0x1003c1a8
xor ecx, ecx
jmp 0x1003d201
mov ecx, dword [ebp - 0xe0]
mov cl, byte [ecx + 2]
jmp 0x1003d52b
mov ecx, dword [ebp - 0x130]
mov edx, dword [ecx]
add edx, 0x1c
mov ecx, dword [edx]
cmp dword [ecx], 2
mov ecx, dword [ebp - 0xe0]
jl 0x1003d54f
cmp al, 0x8a
je 0x1004004f
mov eax, dword [ebp - 0xe0]
cmp byte [eax + 2], 0x8a
mov eax, dword [ebp - 0x130]
jne 0x1004005a
mov eax, dword [ebp - 0x130]
mov eax, dword [eax]
add eax, 0x1c
mov eax, dword [eax]
lea ecx, [edi + edi*4]
mov ecx, dword [eax + ecx*4 + 8]
mov esi, dword [ebp - 0x128]
jmp 0x1003d54f
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ebx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x94]
mov dword [ecx + ebx + 0x324], eax
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0xf4], edx
mov edx, 0x47
push 0
push eax
push 1
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0x94]
mov dword [edx + ebx + 0x328], eax
mov eax, dword [edx + ebx + 0x324]
mov dword [ebp - 0xcc], eax
lea ecx, [eax + eax]
mov dword [edx + ebx + 0x324], ecx
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ecx + 0x1c]
mov dword [ebp - 0xb4], ecx
xor edx, edx
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb4]
cmp byte [eax + ecx], 1
sete dl
xor edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xcc]
lea eax, [edx + eax*2]
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x94]
mov dword [ecx + ebx + 0x324], eax
mov ebx, dword [ebp - 0xc8]
jmp 0x1003d236
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 4]
movzx eax, word [eax + ebx*2]
test ax, ax
js 0x100401b4
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
shl eax, 4
test byte [ecx + eax + 4], 0xf
je 0x100401ba
mov dword [ebp - 0xcc], 0
jmp 0x1003c04b
mov ecx, dword [ecx + 0x14]
add ecx, 8
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003b0c5
jmp 0x1003fb18
cmp bl, 0x42
mov ebx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xcc]
ja 0x1003d5a5
cmp al, 0x42
jbe 0x1003d58d
jmp 0x1003d5a5
cmp ax, 0xfffe
jne 0x10040152
mov al, 1
mov dword [ebp - 0xcc], eax
jmp 0x1003c04b
mov dword [ebp - 0xa8], 0
xor edx, edx
inc edx
jmp 0x1003d6f8
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
cmove ecx, eax
mov dword [ebp - 0xb8], ecx
jmp 0x1003d2f6
xor ecx, ecx
mov eax, dword [ebp - 0x10c]
cmp byte [eax + 0x57], 0
je 0x1003dcdd
jmp 0x10040224
test ecx, ecx
je 0x10040224
mov edx, ecx
mov ecx, dword [ebp - 0x10c]
call fcn.1014c9e0
mov ebx, dword [ebp - 0xb4]
jmp 0x1003df6e
mov ebx, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xa8]
jmp 0x1003df53
xor edi, edi
mov ebx, dword [ebp - 0xa8]
jmp 0x1003de5b
mov eax, 0x101f2320
jmp 0x1003ded2
mov ecx, dword [edx + 0x38]
and ecx, 3
cmp ecx, 2
jne 0x1003df1c
jmp 0x1003df1e
mov ecx, dword [edx + 8]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ecx]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x10040290
lea ecx, [eax + eax*4]
shl ecx, 2
mov eax, dword [ebp - 0xc0]
add ecx, dword [eax + 0x68]
mov ecx, dword [ecx + 8]
mov edx, dword [ebp - 0x9c]
jmp 0x1003df4d
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
cmove ecx, eax
mov dword [ebp - 0xa0], ecx
jmp 0x1003b347
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc8], eax
jmp 0x1003db11
mov ecx, dword [ebp - 0xd8]
jmp 0x1003c756
mov eax, dword [ebp - 0xa0]
add eax, 8
mov esi, dword [eax]
mov ecx, dword [esi + 0x38]
and ecx, 3
lea eax, [esi + 0x14]
cmp ecx, 2
jne 0x100402f4
mov edi, dword [ebp - 0x9c]
mov ebx, dword [edi + 0x28]
lea eax, [ebx + 1]
mov dword [edi + 0x28], eax
movzx eax, word [esi + 0x32]
mov ecx, dword [ebp - 0x98]
mov edx, 0x76
push 0
push eax
mov dword [ebp - 0xf0], ebx
push ebx
call fcn.1002fb80
add esp, 0xc
mov ecx, edi
mov edx, esi
call fcn.1016f710
xor ebx, ebx
jmp 0x1003db6e
xor ebx, ebx
jmp 0x1003dc41
mov ecx, dword [ebp - 0x98]
mov edx, 0xa
push 0
mov eax, dword [ebp - 0xe4]
push dword [eax + ebx*8 + 0x20]
push dword [eax + ebx*8 + 0x24]
call fcn.1002fb80
add esp, 0xc
jmp 0x1003e077
mov eax, 0x101f2320
jmp 0x1003e06b
mov edx, dword [ecx + 8]
mov esi, dword [edx]
mov ecx, 0x101f2320
cmp byte [esi + 0x57], 0
jne 0x10040396
lea ecx, [eax + eax*4]
shl ecx, 2
add ecx, dword [edx + 0x68]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x11c]
jmp 0x1003e131
mov ecx, 0x101f2320
jmp 0x1003e1a2
mov edx, dword [ebp - 0x98]
push esi
call fcn.10032440
add esp, 4
mov edx, dword [ebp - 0xc4]
jmp 0x1003e1f2
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xb0]
call fcn.10176810
jmp 0x1003e228
xor edi, edi
mov ebx, dword [ebp - 0x98]
mov ecx, ebx
mov edx, 0x61
push dword [ebp - 0xbc]
push dword [ebp - 0x118]
push dword [ebp - 0xe0]
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, 0x8a
push dword [ebp - 0xe0]
push dword [ebp - 0xbc]
push dword [ebp - 0xf0]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x10040495
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov edx, dword [ebp - 0x118]
mov dword [ecx + eax*4 + 0x10], edx
cmp dword [ebp - 0x110], 0
je 0x100404bc
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax]
test eax, eax
jle 0x100404bc
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
cmp word [ebp - 0x118], 1
jne 0x10040505
cmp dword [ebp - 0xe0], 0
je 0x10040242
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x10040242
mov ecx, eax
inc cl
mov edx, dword [ebp - 0x9c]
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0xe0]
mov dword [edx + eax*4 + 0xa0], ecx
jmp 0x10040242
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x118]
cmp dword [eax + 0x1c], ecx
jge 0x10040242
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x118]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0xe0]
mov dword [eax + 0x20], ecx
jmp 0x10040242
lea ecx, [ebp - 0x70]
call fcn.101500e0
test eax, eax
je 0x1003ab62
mov ecx, dword [eax + 0x20]
or ecx, dword [eax + 0x24]
jne 0x10040567
mov dword [ebx + 0x2c], 0x1101
mov ecx, dword [ebx + 0x38]
mov dword [ecx], eax
xor eax, eax
inc eax
mov word [ebx + 0x30], ax
mov word [ebx + 0x18], ax
mov ax, 0x21
jmp 0x1003ac87