Function at 0x10046e20
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e4
mov eax, dword [0x100eb6ac]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov esi, dword [edi]
mov eax, dword [esi + 4]
mov edx, dword [eax + 0x14]
mov al, byte [edx + 0x79]
xor ecx, ecx
cmp dword [edi + 0x50], 0xbdf20da3
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x9c], esi
mov byte [ebp - 0x91], al
mov dword [ebp - 0xfc], ecx
je 0x10046e80
lea eax, [ecx + 0x15]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x80], 7
mov ebx, dword [edi + 0x2c]
mov dword [ebp - 0x84], ebx
je 0x1004b107
mov eax, dword [edi + 0x22c]
mov dword [edi + 0x80], ecx
cmp eax, ecx
je 0x10046ec5
lea ecx, [ebp - 0x84]
push ecx
call fcn.10046be0
mov ebx, dword [ebp - 0x84]
add esp, 4
mov dword [edi + 0x22c], 0
mov byte [edi + 0x234], 0
test byte [esi + 8], 4
mov dword [esi + 0xe8], 0
jne 0x1004b0ba
mov ecx, dword [edi + 0x7c]
mov dword [ebp - 0xa0], ecx
lea esp, [esp]
call fcn.1002e980
test eax, eax
jne 0x1004b107
cmp dword [esi + 0x98], 0
mov eax, dword [edi + 0x18]
lea edx, [ecx + ecx*4]
lea edi, [eax + edx*4]
mov dword [ebp - 0x88], edi
je 0x10046f7b
mov ecx, dword [ebp - 0xfc]
cmp dword [esi + 0xa0], ecx
jne 0x10046f75
mov eax, esi
call fcn.1002e580
test eax, eax
jne 0x1004ad78
mov edx, dword [esi + 0x9c]
mov eax, dword [esi + 0x98]
push edx
call eax
add esp, 4
test eax, eax
mov eax, esi
je 0x10046f5e
call fcn.1002e550
mov dword [ebp - 0x8c], 4
jmp case.0x10046f9b.47
mov dword [ebp - 0xfc], 0
call fcn.1002e550
test eax, eax
jne 0x1004ad78
inc dword [ebp - 0xfc]
mov cl, byte [edi]
movzx edx, cl
lea eax, [edx - 1]
mov dword [ebp - 0xa4], edx
cmp eax, 0x8c
ja case.0x10046f9b.47
movzx eax, byte [eax + 0x1004b338]
jmp dword [eax*4 + 0x1004b1a0]
mov esi, dword [ebp - 0x9c]
test byte [esi + 8], 4
jne 0x1004b0ba
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0xa0]
mov ecx, dword [eax + 0x220]
inc edx
mov dword [eax + ecx*4 + 0x90], edx
inc dword [eax + 0x220]
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x90]
dec dword [eax + 0x220]
mov ecx, dword [eax + 0x220]
mov eax, dword [eax + ecx*4 + 0x90]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
add ebx, 0x40
mov ecx, 4
mov word [ebx + 0x18], cx
mov eax, dword [edx + 4]
cdq
mov dword [ebx], eax
mov dword [ebp - 0x84], ebx
mov dword [ebx + 4], edx
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
add ebx, 0x40
mov eax, 0xa2
mov word [ebx + 0x18], ax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x10], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10047068
sub eax, edx
mov dword [ebx + 0x14], eax
mov esi, ebx
mov byte [ebx + 0x1b], 1
call fcn.100392e0
mov dword [ebx], eax
mov dword [ebx + 4], edx
or word [ebx + 0x18], 4
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
add ebx, 0x40
mov edx, 0xa2
mov word [ebx + 0x18], dx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x10], eax
lea esi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100470b0
sub eax, esi
mov dword [ebx + 0x14], eax
mov esi, ebx
mov byte [ebx + 0x1b], 1
call fcn.10039360
fstp qword [ebx + 8]
movzx eax, byte [ebp - 0x91]
or word [ebx + 0x18], 8
mov ecx, ebx
call fcn.10038f60
jmp case.0x10046f9b.47
mov edi, dword [ebp - 0x88]
mov edx, dword [edi + 0xc]
mov eax, edx
mov byte [edi], 0x5b
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100470f3
sub eax, esi
cmp byte [ebp - 0x91], 1
mov dword [edi + 4], eax
je 0x10047194
push 0
push 1
push 0xffffffffffffffff
add ebx, 0x40
push edx
push ebx
mov dword [ebp - 0x84], ebx
call fcn.10039770
movzx eax, byte [ebp - 0x91]
add esp, 0x14
mov ecx, ebx
call fcn.10038f60
test eax, eax
jne 0x1004b107
mov esi, ebx
call fcn.10038f80
test eax, eax
jne 0x1004b107
mov cx, word [ebx + 0x18]
mov edx, 0xffbf
and cx, dx
mov eax, 0x80
or cx, ax
or esi, 0xffffffff
mov word [ebx + 0x18], cx
cmp dword [edi + 0x10], esi
jne 0x1004717a
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1004717a
push eax
call fcn.1009cc76
add esp, 4
mov dword [edi + 0x10], esi
mov ecx, dword [ebx + 0x10]
mov dword [edi + 0xc], ecx
mov edx, dword [ebx + 0x14]
mov dword [edi + 4], edx
jmp case.0x10046f9b.47
mov edi, dword [ebp - 0x88]
add ebx, 0x40
mov eax, 0xa2
mov word [ebx + 0x18], ax
mov ecx, dword [edi + 0xc]
mov al, byte [ebp - 0x91]
mov dword [ebx + 0x10], ecx
mov edx, dword [edi + 4]
mov dword [ebx + 0x14], edx
mov dword [ebp - 0x84], ebx
mov byte [ebx + 0x1b], al
jmp case.0x10046f9b.47
add ebx, 0x40
mov ecx, 1
mov word [ebx + 0x18], cx
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x14], 0
jmp case.0x10046f9b.47
mov esi, dword [ebp - 0x88]
mov edx, dword [esi + 0xc]
mov eax, edx
mov byte [esi], 0xb
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100471f0
sub eax, edi
shr eax, 1
mov dword [esi + 4], eax
je 0x10047235
push edx
call fcn.1002e840
mov edi, eax
add esp, 4
test edi, edi
je 0x1004b107
cmp dword [esi + 0x10], 0xffffffff
jne 0x10047229
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10047229
push eax
call fcn.1009cc76
add esp, 4
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], 0xffffffff
jmp 0x1004725e
cmp dword [esi + 0x10], 0xffffffff
jne 0x10047248
test edx, edx
je 0x10047248
push edx
call fcn.1009cc76
add esp, 4
mov dword [esi + 0x10], 0xfffffffe
mov dword [esi + 0xc], 0x100cdc9d
jmp 0x1004725e
mov esi, dword [ebp - 0x88]
mov edx, dword [esi + 4]
mov eax, dword [esi + 0xc]
push 0
push 0
push edx
add ebx, 0x40
push eax
push ebx
mov dword [ebp - 0x84], ebx
call fcn.10039770
add esp, 0x14
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x44]
add ebx, 0x40
shl edx, 6
lea esi, [edx + ecx - 0x40]
mov ecx, 8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x1c], 0
test al, 0x12
je case.0x10046f9b.47
and eax, 0xfcbf
or eax, 0x80
mov word [ebx + 0x18], ax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 4]
lea edx, [ebp - 0x84]
push edx
call fcn.10046be0
add esp, 4
jmp 0x1004ae44
mov edx, dword [ebp - 0x88]
mov ecx, dword [edx + 4]
shl ecx, 6
mov esi, ebx
add ebx, 0x40
sub esi, ecx
mov ecx, 8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x1c], 0
test al, 0x12
je 0x1004732e
and eax, 0xfd3f
or eax, 0x100
mov word [ebx + 0x18], ax
cmp dword [edx + 8], 0
je case.0x10046f9b.47
mov edx, 0x100
test word [ebx + 0x18], dx
je case.0x10046f9b.47
mov esi, ebx
call fcn.10039020
test eax, eax
jne 0x1004b107
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
shl ecx, 6
mov esi, ebx
sub esi, ecx
mov edx, 0x100
mov ecx, 0x10
lea edi, [ebp - 0x1e0]
mov dword [ebp - 0xa4], esi
rep movsd dword es:[edi], dword [esi]
test word [ebx + 0x18], dx
je 0x10047398
mov esi, ebx
call fcn.10039020
test eax, eax
jne 0x1004b107
mov eax, dword [ebp - 0x88]
cmp dword [eax + 4], 0
mov dword [ebp - 0xac], 0
jle 0x10047422
mov ecx, dword [ebp - 0xa4]
add ecx, 0x40
mov dword [ebp - 0x98], ecx
lea ecx, [ecx]
mov esi, dword [ebp - 0x98]
mov edx, 0x100
test word [esi + 0x18], dx
je 0x100473de
call fcn.10039020
test eax, eax
jne 0x1004b107
mov eax, dword [ebp - 0x98]
lea edi, [eax - 0x40]
mov ecx, 0x10
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x200
test word [eax - 0x28], cx
je 0x10047401
lea edx, [eax - 0x20]
mov dword [eax - 0x30], edx
mov ecx, dword [ebp - 0xac]
add eax, 0x40
inc ecx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xac], ecx
cmp ecx, dword [eax + 4]
jl 0x100473c0
mov ecx, 0x10
lea esi, [ebp - 0x1e0]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x200
test word [ebx + 0x18], cx
je case.0x10046f9b.47
lea edx, [ebx + 0x20]
mov dword [ebx + 0x10], edx
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
shl ecx, 6
push ebx
sub ebx, ecx
call fcn.10039710
add esp, 4
sub dword [ebp - 0x84], 0x40
jmp 0x1004ae44
mov edx, dword [ebp - 0x88]
mov edi, dword [edx + 4]
add edi, 2
mov eax, edi
shl eax, 6
mov esi, ebx
sub esi, eax
xor eax, eax
add esi, 0x40
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x98], eax
cmp edi, eax
jle 0x1004752b
movzx ecx, word [esi + 0x18]
test cl, 1
jne 0x100474f1
test cl, 0x12
jne 0x100474d0
movzx ebx, byte [ebp - 0x91]
call fcn.10039160
test eax, eax
jne 0x1004b101
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x98]
add eax, dword [esi + 0x14]
inc ecx
add esi, 0x40
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x98], ecx
cmp ecx, edi
jl 0x100474a2
test eax, eax
jns 0x1004752b
mov edx, dword [ebp - 0x88]
cmp dword [edx + 8], 0
jne 0x10047514
lea eax, [ebp - 0x84]
push eax
mov eax, edi
call fcn.10046be0
mov ebx, dword [ebp - 0x84]
add esp, 4
add ebx, 0x40
mov ecx, 1
mov dword [ebp - 0x84], ebx
mov word [ebx + 0x18], cx
jmp case.0x10046f9b.47
add eax, 2
test eax, eax
jle 0x1004b107
push eax
call fcn.1002da00
add esp, 4
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x1004b107
mov dword [ebp - 0x98], 0
test edi, edi
jle 0x100475a9
mov esi, dword [ebp - 0xa4]
add esi, 0x10
mov dword [ebp - 0xac], edi
lea ebx, [ebx]
mov eax, dword [esi + 4]
mov edx, dword [esi]
push eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0xa8]
push edx
push eax
call fcn.100a0e30
mov edx, dword [ebp - 0xa4]
add dword [ebp - 0x98], edx
add esp, 0xc
add esi, 0x40
dec dword [ebp - 0xac]
jne 0x10047570
mov esi, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x88]
mov word [esi + eax], 0
cmp dword [ecx + 8], 0
jne 0x100475e4
lea edx, [ebp - 0x84]
push edx
mov eax, edi
call fcn.10046be0
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xa8]
add esp, 4
mov dl, byte [ebp - 0x91]
add ebx, 0x40
mov dword [ebx + 0x14], esi
mov ecx, 0x62
mov word [ebx + 0x18], cx
mov dword [ebx + 0x1c], 0
mov byte [ebx + 0x1b], dl
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x10], eax
jmp case.0x10046f9b.47
movzx ecx, word [ebx - 0x28]
movzx edx, word [ebx + 0x18]
lea edi, [ebx - 0x40]
mov eax, ecx
or eax, edx
mov dword [ebp - 0xd4], eax
test al, 1
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0xa8], edi
je 0x10047664
test al, 0x40
je 0x10047641
push ebx
call fcn.10039280
add esp, 4
test byte [edi + 0x18], 0x40
mov dword [ebp - 0x84], edi
je 0x10047656
push edi
call fcn.10039280
add esp, 4
mov eax, 1
mov word [edi + 0x18], ax
jmp 0x1004ae44
and cl, al
test cl, 4
je 0x10047710
mov edx, dword [ebp - 0xa4]
mov esi, dword [edi]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edi, dword [edi + 4]
add edx, 0xffffffb3
cmp edx, 3
ja case.default.0x10047687
jmp dword [edx*4 + 0x1004b3c8]
add esi, eax
adc edi, ecx
jmp 0x100476d1
sub esi, eax
sbb edi, ecx
jmp 0x100476d1
push ecx
push eax
push edi
push esi
call fcn.100aacd0
jmp 0x100476cd
mov edx, eax
or edx, ecx
je 0x1004780b
push ecx
push eax
push edi
push esi
call fcn.100a9140
jmp 0x100476cd
mov edx, eax
or edx, ecx
je 0x1004780b
push ecx
push eax
push edi
push esi
call fcn.100a91f0
mov esi, eax
mov edi, edx
movzx eax, word [ebx + 0x18]
test al, 0x40
je 0x100476e2
push ebx
call fcn.10039280
add esp, 4
mov ebx, dword [ebp - 0xa8]
test byte [ebx + 0x18], 0x40
mov dword [ebp - 0x84], ebx
je 0x100476fd
push ebx
call fcn.10039280
add esp, 4
mov dword [ebx], esi
mov eax, 4
mov dword [ebx + 4], edi
mov word [ebx + 0x18], ax
jmp 0x1004ae44
mov esi, ebx
call fcn.10039360
fstp qword [ebp - 0xc0]
mov esi, dword [ebp - 0xa8]
call fcn.10039360
mov ecx, dword [ebp - 0x88]
movzx eax, byte [ecx]
add eax, 0xffffffb3
cmp eax, 3
ja case.default.0x10047739
jmp dword [eax*4 + 0x1004b3d8]
fadd qword [ebp - 0xc0]
jmp 0x100477af
fsub qword [ebp - 0xc0]
jmp 0x100477af
fmul qword [ebp - 0xc0]
jmp 0x100477af
fld qword [ebp - 0xc0]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10047807
fdivp st(1)
jmp 0x100477af
fld qword [ebp - 0xc0]
call fcn.100bc650
mov edi, eax
mov dword [ebp - 0xa4], edi
call fcn.100bc650
fild dword [ebp - 0xa4]
fldz
mov ecx, eax
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1004780b
mov eax, ecx
cdq
idiv edi
mov dword [ebp - 0xa4], edx
fild dword [ebp - 0xa4]
test byte [ebx + 0x18], 0x40
fstp qword [ebp - 0xc0]
je 0x100477c4
push ebx
call fcn.10039280
add esp, 4
test byte [esi + 0x18], 0x40
mov dword [ebp - 0x84], esi
je 0x100477d9
push esi
call fcn.10039280
add esp, 4
fld qword [ebp - 0xc0]
mov eax, 8
fstp qword [esi + 8]
mov word [esi + 0x18], ax
test byte [ebp - 0xd4], al
jne 0x1004ae44
mov esi, dword [ebp - 0x84]
call fcn.100393d0
jmp 0x1004ae44
fstp st(0)
fstp st(0)
test byte [ebx + 0x18], 0x40
je 0x1004781a
push ebx
call fcn.10039280
add esp, 4
mov esi, dword [ebp - 0xa8]
test byte [esi + 0x18], 0x40
mov dword [ebp - 0x84], esi
je 0x10047835
push esi
call fcn.10039280
add esp, 4
mov edx, 1
mov word [esi + 0x18], dx
jmp 0x1004ae44
mov eax, dword [ebp - 0x88]
mov esi, dword [eax + 8]
mov ecx, dword [ebp - 0x90]
mov edi, dword [ecx + 0x30]
mov edx, esi
shl edx, 6
mov ecx, ebx
sub ecx, edx
add ecx, 0x40
xor edx, edx
test esi, esi
jle 0x1004787d
mov dword [edi + edx*4], ecx
call fcn.10046bb0
inc edx
add ecx, 0x40
cmp edx, esi
jl 0x10047867
mov eax, dword [ebp - 0x88]
cmp dword [eax + 0x10], 0xfffffffb
jne 0x1004788f
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x7c], 0
jmp 0x10047897
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x7c], ecx
mov edx, dword [ecx]
mov ecx, 1
mov word [ebp - 0x60], cx
xor ecx, ecx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x5c], ecx
mov byte [ebp - 0x34], cl
cmp byte [edx + 3], cl
je 0x100478b9
mov eax, dword [eax - 8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x9c]
call fcn.1002e580
test eax, eax
jne 0x1004ad78
mov edx, dword [edx + 0x10]
push edi
lea ecx, [ebp - 0x80]
push esi
push ecx
call edx
mov eax, dword [ebp - 0x9c]
add esp, 0xc
call fcn.1002e550
test eax, eax
jne 0x1004ad78
call fcn.1002e980
test eax, eax
jne 0x1004b107
lea eax, [ebp - 0x84]
push eax
mov eax, esi
call fcn.10046be0
mov ebx, dword [ebp - 0x7c]
add esp, 4
test ebx, ebx
je 0x10047937
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 4]
push edx
call fcn.1003b750
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x7c]
add esp, 4
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0xfffffff9
cmp byte [ebp - 0x34], 0
je 0x1004796b
push 0
push ecx
lea edx, [ebp - 0x78]
push edx
call fcn.1002cca0
add esp, 8
push eax
mov eax, dword [ebp - 0x90]
add eax, 0x230
push eax
call fcn.1002dc00
add esp, 0xc
mov dword [ebp - 0x8c], 1
movzx eax, byte [ebp - 0x91]
lea ecx, [ebp - 0x78]
call fcn.10038f60
mov ebx, dword [ebp - 0x84]
add ebx, 0x40
lea edx, [ebp - 0x78]
xor ecx, ecx
push edx
mov dword [ebp - 0x84], ebx
mov word [ebx + 0x18], cx
call fcn.10039710
add esp, 4
jmp 0x1004ae44
mov al, byte [ebx - 0x28]
or al, byte [ebx + 0x18]
lea esi, [ebx - 0x40]
mov dword [ebp - 0xa8], esi
test al, 1
je 0x100479e4
lea ecx, [ebp - 0x84]
push ecx
mov eax, 2
call fcn.10046be0
mov eax, dword [ebp - 0x84]
add esp, 4
add eax, 0x40
mov edx, 1
mov dword [ebp - 0x84], eax
mov word [eax + 0x18], dx
jmp 0x1004ae44
call fcn.100392e0
mov esi, ebx
mov edi, eax
mov dword [ebp - 0x104], edx
call fcn.100392e0
mov ecx, eax
mov eax, dword [ebp - 0x88]
movzx eax, byte [eax]
add eax, 0xffffffb7
cmp eax, 3
ja case.default.0x10047a0b
jmp dword [eax*4 + 0x1004b3e8]
and edi, ecx
and dword [ebp - 0x104], edx
jmp case.default.0x10047a0b
or edi, ecx
or dword [ebp - 0x104], edx
jmp case.default.0x10047a0b
mov edx, dword [ebp - 0x104]
mov eax, edi
call fcn.100bc730
jmp 0x10047a42
mov edx, dword [ebp - 0x104]
mov eax, edi
call fcn.100bc700
mov dword [ebp - 0x104], edx
mov edi, eax
test byte [ebx + 0x18], 0x40
je 0x10047a59
push ebx
call fcn.10039280
add esp, 4
mov esi, dword [ebp - 0xa8]
test byte [esi + 0x18], 0x40
mov dword [ebp - 0x84], esi
je 0x10047a74
push esi
call fcn.10039280
add esp, 4
mov ecx, dword [ebp - 0x104]
mov dword [esi], edi
mov edx, 4
mov dword [esi + 4], ecx
mov word [esi + 0x18], dx
jmp 0x1004ae44
mov eax, ebx
call fcn.10039400
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 4]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x10046f9b.47
mov esi, ebx
call fcn.10046d20
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0xa4], eax
test al, 8
je 0x10047ae5
fld qword [ebx + 8]
call fcn.100bc686
mov dword [ebx], eax
mov dword [ebx + 4], edx
fild qword [ebx]
fld qword [ebx + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10047ae5
mov eax, dword [ebp - 0xa4]
or eax, 4
mov word [ebx + 0x18], ax
movzx eax, word [ebx + 0x18]
test al, 0xc
jne 0x10047b18
test al, 0x40
je 0x10047afa
push ebx
call fcn.10039280
add esp, 4
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 8]
sub ebx, 0x40
dec eax
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
test al, 4
je 0x10047b49
mov edx, dword [ebp - 0x88]
cmp dword [edx + 4], 0
je 0x10047b3a
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov eax, 1
xor ecx, ecx
add esi, eax
adc edi, ecx
jmp 0x10047baf
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
xor eax, eax
xor ecx, ecx
add esi, eax
adc edi, ecx
jmp 0x10047baf
mov eax, ebx
call fcn.10039480
fld qword [ebx + 8]
call fcn.100bc650
cdq
mov esi, eax
mov edi, edx
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x134], edi
fild qword [ebp - 0x138]
fcomp qword [ebx + 8]
fnstsw ax
test ah, 5
jp 0x10047b8b
add esi, 1
adc edi, 0
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x134], edi
mov eax, dword [ebp - 0x88]
cmp dword [eax + 4], 0
je 0x10047baf
fild qword [ebp - 0x138]
fld qword [ebx + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10047baf
add esi, 1
adc edi, 0
test byte [ebx + 0x18], 0x40
je 0x10047bbe
push ebx
call fcn.10039280
add esp, 4
mov dword [ebx], esi
mov ecx, 4
mov dword [ebx + 4], edi
mov word [ebx + 0x18], cx
jmp case.0x10046f9b.47
mov esi, ebx
call fcn.10046d20
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0xa4], eax
test al, 8
je 0x10047c0e
fld qword [ebx + 8]
call fcn.100bc686
mov dword [ebx], eax
mov dword [ebx + 4], edx
fild qword [ebx]
fld qword [ebx + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10047c0e
mov eax, dword [ebp - 0xa4]
or eax, 4
mov word [ebx + 0x18], ax
movzx eax, word [ebx + 0x18]
test al, 4
jne 0x10047c55
mov esi, dword [ebp - 0x88]
cmp dword [esi + 8], 0
je 0x1004afa6
cmp dword [esi + 4], 0
je 0x10047c46
lea edx, [ebp - 0x84]
push edx
mov eax, 1
call fcn.10046be0
mov ebx, dword [ebp - 0x84]
add esp, 4
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
test al, 0x40
je 0x10047c62
push ebx
call fcn.10039280
add esp, 4
mov eax, 4
mov word [ebx + 0x18], ax
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 4
je case.0x10046f9b.47
mov eax, ebx
call fcn.10039480
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 1
jne case.0x10046f9b.47
movzx eax, word [ebx + 0x18]
mov ecx, eax
shr ecx, 3
and ecx, 2
or ecx, eax
movzx eax, cx
mov word [ebx + 0x18], cx
test al, 2
jne 0x10047cc1
test al, 0xc
je 0x10047cc1
movzx ebx, byte [ebp - 0x91]
mov esi, dword [ebp - 0x84]
call fcn.10039160
mov ebx, esi
mov edx, 0xfff3
and word [ebx + 0x18], dx
mov eax, 0xffe3
and word [ebx + 0x18], ax
jmp case.0x10046f9b.47
movzx eax, word [ebx + 0x18]
test al, 1
jne case.0x10046f9b.47
test al, 0x10
jne 0x10047d16
movzx eax, word [ebx + 0x18]
test al, 2
jne 0x10047d08
test al, 0xc
je 0x10047d08
movzx ebx, byte [ebp - 0x91]
mov esi, dword [ebp - 0x84]
call fcn.10039160
mov ebx, esi
mov ecx, 0xfff3
and word [ebx + 0x18], cx
or word [ebx + 0x18], 0x10
mov edx, 0xfff1
and word [ebx + 0x18], dx
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 1
jne case.0x10046f9b.47
mov esi, ebx
call fcn.10039500
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 1
jne case.0x10046f9b.47
mov eax, ebx
call fcn.10039400
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 1
jne case.0x10046f9b.47
mov eax, ebx
call fcn.10039480
jmp case.0x10046f9b.47
movzx eax, word [ebx + 0x18]
mov cl, byte [ebx - 0x28]
mov edi, dword [ebp - 0x88]
or cl, al
test cl, 1
je 0x10047da9
test dword [edi + 4], 0x200
je 0x10047dfa
not eax
and eax, 1
cdq
push edx
push eax
mov eax, ebx
call fcn.100395b0
movzx eax, word [ebx - 0x28]
not eax
and eax, 1
cdq
push edx
push eax
lea eax, [ebx - 0x40]
call fcn.100395b0
add esp, 0x10
mov al, byte [edi + 4]
mov byte [ebp - 0xad], al
test al, al
je 0x10047dd7
mov dl, byte [ebp - 0x91]
lea ecx, [ebx - 0x40]
call fcn.10046db0
mov dl, byte [ebp - 0x91]
mov al, byte [ebp - 0xad]
mov ecx, ebx
call fcn.10046db0
mov eax, dword [edi + 0xc]
mov ecx, ebx
lea edx, [ebx - 0x40]
call fcn.100398d0
movzx ecx, byte [edi]
add ecx, 0xffffffbe
cmp ecx, 4
ja case.default.0x10047df3
jmp dword [ecx*4 + 0x1004b3f8]
lea edx, [ebp - 0x84]
push edx
mov eax, 2
call fcn.10046be0
mov eax, dword [edi + 8]
add esp, 4
test eax, eax
je 0x10047e2e
test dword [edi + 4], 0x100
je 0x1004ae44
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x1004ae44
mov eax, dword [ebp - 0x84]
add eax, 0x40
mov ecx, 1
mov dword [ebp - 0x84], eax
mov word [eax + 0x18], cx
jmp 0x1004ae44
xor edx, edx
test eax, eax
sete dl
mov esi, edx
jmp 0x10047e87
xor ecx, ecx
test eax, eax
setne cl
jmp 0x10047e85
xor edx, edx
test eax, eax
sets dl
mov esi, edx
jmp 0x10047e87
xor ecx, ecx
test eax, eax
setle cl
jmp 0x10047e85
xor edx, edx
test eax, eax
setg dl
mov esi, edx
jmp 0x10047e87
xor ecx, ecx
test eax, eax
setns cl
mov esi, ecx
lea edx, [ebp - 0x84]
push edx
mov eax, 2
call fcn.10046be0
mov eax, dword [edi + 8]
add esp, 4
test eax, eax
je 0x10047eb6
test esi, esi
je 0x1004ae44
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x1004ae44
mov ecx, dword [ebp - 0x84]
add ecx, 0x40
mov eax, 4
mov word [ecx + 0x18], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov dword [ebp - 0x84], ecx
mov dword [ecx + 4], edx
jmp 0x1004ae44
test byte [ebx + 0x18], 1
je 0x10047ee8
mov esi, 2
jmp 0x10047efd
mov eax, ebx
call fcn.10039400
mov ecx, dword [ebx]
or ecx, dword [ebx + 4]
jne 0x10047efb
lea esi, [ecx + 1]
jmp 0x10047efd
xor esi, esi
test byte [ebx - 0x28], 1
je 0x10047f0a
mov eax, 2
jmp 0x10047f21
lea eax, [ebx - 0x40]
call fcn.10039400
mov edx, dword [ebx - 0x40]
or edx, dword [ebx - 0x3c]
jne 0x10047f1f
lea eax, [edx + 1]
jmp 0x10047f21
xor eax, eax
mov ecx, dword [ebp - 0x88]
cmp byte [ecx], 0x3c
jne 0x10047f39
lea edx, [eax + esi*2]
movzx esi, byte [esi + edx + 0x100d2494]
jmp 0x10047f44
lea eax, [eax + esi*2]
movzx esi, byte [esi + eax + 0x100d2f74]
lea ecx, [ebp - 0x84]
push ecx
mov eax, 2
call fcn.10046be0
mov ecx, dword [ebp - 0x84]
add ecx, 0x40
add esp, 4
mov dword [ebp - 0x84], ecx
mov ebx, ecx
cmp esi, 2
jne 0x10047f7c
mov edx, 1
mov word [ecx + 0x18], dx
jmp case.0x10046f9b.47
xor eax, eax
test esi, esi
sete al
cdq
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 0x18], ax
jmp case.0x10046f9b.47
movzx eax, word [ebx + 0x18]
test al, 8
jne 0x10047ff6
test al, 4
je 0x10047fe7
test al, 0x40
je 0x10047fb0
push ebx
call fcn.10039280
add esp, 4
mov ecx, dword [ebp - 0x88]
cmp byte [ecx], 0x53
je 0x10047fc8
cmp dword [ebx + 4], 0
jg 0x10047fd9
jl 0x10047fc8
cmp dword [ebx], 0
jae 0x10047fd9
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
neg edx
adc eax, 0
neg eax
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov ecx, 4
mov word [ebx + 0x18], cx
jmp case.0x10046f9b.47
test al, 1
jne case.0x10046f9b.47
mov esi, ebx
call fcn.10039500
test byte [ebx + 0x18], 0x40
je 0x10048005
push ebx
call fcn.10039280
add esp, 4
mov edx, dword [ebp - 0x88]
cmp byte [edx], 0x53
je 0x1004801c
fldz
fcomp qword [ebx + 8]
fnstsw ax
test ah, 0x41
jne 0x10048024
fld qword [ebx + 8]
fchs
fstp qword [ebx + 8]
mov eax, 8
mov word [ebx + 0x18], ax
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 1
jne case.0x10046f9b.47
mov eax, ebx
call fcn.10039400
mov ecx, dword [ebx]
or ecx, dword [ebx + 4]
jne 0x10048063
mov eax, 1
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov edx, 4
mov word [ebx + 0x18], dx
jmp case.0x10046f9b.47
xor eax, eax
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov edx, 4
mov word [ebx + 0x18], dx
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 1
jne case.0x10046f9b.47
mov eax, ebx
call fcn.10039400
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
not eax
not ecx
mov dword [ebx], eax
mov edx, 4
mov dword [ebx + 4], ecx
mov word [ebx + 0x18], dx
jmp case.0x10046f9b.47
test byte [ebx + 0x18], 1
je 0x100480b7
mov eax, dword [ebp - 0x88]
mov esi, dword [eax + 4]
jmp 0x100480e6
mov esi, ebx
call fcn.10039360
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100480d0
mov esi, 1
jmp 0x100480d2
xor esi, esi
mov ecx, dword [ebp - 0x88]
cmp byte [ecx], 0x69
jne 0x100480e6
xor edx, edx
test esi, esi
sete dl
mov esi, edx
test byte [ebx + 0x18], 0x40
je 0x100480f5
push ebx
call fcn.10039280
add esp, 4
sub ebx, 0x40
mov dword [ebp - 0x84], ebx
test esi, esi
je case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov edi, dword [ebp - 0x88]
mov esi, dword [edi + 4]
mov eax, esi
test eax, eax
jns 0x1004812c
neg eax
mov edx, eax
shl edx, 6
mov ecx, ebx
sub ecx, edx
xor edx, edx
test eax, eax
jle 0x10048159
add ecx, 0x58
mov edi, edi
test byte [ecx], 1
jne 0x1004814f
inc edx
add ecx, 0x40
cmp edx, eax
jl 0x10048140
jmp 0x10048159
mov ecx, dword [edi + 8]
dec ecx
mov dword [ebp - 0xa0], ecx
test esi, esi
jle case.0x10046f9b.47
lea ecx, [ebp - 0x84]
push ecx
call fcn.10046be0
add esp, 4
jmp 0x1004ae44
mov edx, dword [ebp - 0x88]
mov esi, dword [edx + 4]
mov eax, esi
test eax, eax
jns 0x10048186
neg eax
xor edx, edx
test eax, eax
jle 0x100481b4
mov edi, eax
shl edi, 6
mov ecx, ebx
sub ecx, edi
add ecx, 0x58
test byte [ecx], 1
jne 0x100481b0
inc edx
add ecx, 0x40
cmp edx, eax
jl 0x10048198
mov edx, dword [ebp - 0x88]
mov ecx, dword [edx + 8]
jmp 0x10048152
cmp edx, eax
jl 0x10048159
mov edx, dword [ebp - 0x88]
mov ecx, dword [edx + 8]
jmp 0x10048152
mov eax, dword [ebp - 0x88]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx + 0x3c]
mov edx, dword [ecx + edx*4]
mov eax, dword [eax + 8]
mov dword [edx + 0x50], eax
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
xor edx, edx
mov word [ebp - 0x50], dx
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0xac], ecx
add ebx, 0x40
mov ecx, 1
mov word [ebx + 0x18], cx
mov ecx, dword [edx + 0x3c]
mov edi, dword [ecx + eax*4]
xor eax, eax
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0xec], edi
cmp dword [edi], eax
je 0x100482e2
mov esi, edi
call fcn.1003b8e0
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048e00
mov edx, dword [edi]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xa8], edx
cmp byte [edi + 0x1c], al
je 0x10048255
mov dword [ebp - 0xd0], eax
jmp 0x100482ac
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp - 0x90]
cmp eax, dword [ecx + 0x60]
jne 0x10048277
mov edx, dword [edi + 0x64]
mov eax, dword [edi + 0x70]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xc4], eax
jmp 0x100482ac
cmp byte [edi + 0x21], 0
mov esi, dword [ebp - 0xa8]
je 0x1004829d
lea ecx, [ebp - 0x1a0]
push ecx
call fcn.100311d0
mov edx, dword [ebp - 0x1a0]
mov dword [ebp - 0xd0], edx
jmp 0x100482a9
lea eax, [ebp - 0xd0]
push eax
call fcn.100312a0
add esp, 4
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x98], ecx
xor eax, eax
cmp dword [ebp - 0xd0], eax
je case.0x10046f9b.47
mov eax, dword [edi + 0x60]
mov esi, dword [ebp - 0x90]
cmp eax, dword [esi + 0x60]
jne 0x10048318
mov ecx, dword [edi + 0x68]
mov eax, dword [edi + 0x6c]
mov dword [ebp - 0xb4], ecx
jmp 0x1004856c
cmp byte [edi + 0x1e], al
je 0x1004830d
mov edx, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0xd0], edx
mov edx, dword [edi + 0x50]
mov dword [ebp - 0xc4], ecx
mov dword [edi + 0x60], eax
mov dword [ebp - 0x98], edx
mov dword [ebp - 0xa8], eax
jmp 0x100482b7
mov dword [ebp - 0xd0], eax
jmp case.0x10046f9b.47
mov eax, dword [edi + 0x68]
mov dword [ebp - 0xb4], eax
test eax, eax
jne 0x10048367
mov eax, dword [ebp - 0x98]
add eax, eax
add eax, eax
add eax, eax
test eax, eax
jle 0x10048346
push eax
call fcn.1002da00
add esp, 4
mov dword [ebp - 0xb4], eax
jmp 0x10048356
mov dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0xb4]
mov dword [edi + 0x68], eax
test eax, eax
je 0x1004b107
mov eax, dword [ebp - 0xb4]
cmp dword [ebp - 0xc4], 0
mov edx, dword [ebp - 0x98]
lea eax, [eax + edx*4]
mov dword [edi + 0x6c], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xd0]
mov dword [edi + 0x64], eax
mov ecx, dword [esi + 0x60]
mov dword [edi + 0x60], ecx
je 0x10048399
mov esi, dword [ebp - 0xc4]
jmp 0x100483ea
cmp byte [edi + 0x21], 0
je 0x100483b3
mov esi, dword [ebp - 0xa8]
lea edx, [ebp - 0x114]
push edx
call fcn.10031650
jmp 0x100483c5
lea eax, [ebp - 0x114]
push eax
mov eax, dword [ebp - 0xa8]
call fcn.100316c0
mov ecx, dword [ebp - 0x114]
add esp, 4
mov esi, eax
cmp ecx, dword [ebp - 0xd0]
jb 0x100483e3
mov dword [ebp - 0xc4], esi
mov dword [edi + 0x70], esi
jmp 0x100483ea
mov dword [edi + 0x70], 0
movzx eax, byte [esi]
mov dword [ebp - 0xc8], eax
cmp eax, 0x7f
ja 0x10048404
mov dword [ebp - 0xdc], 1
jmp 0x1004841b
lea edi, [ebp - 0xc8]
call fcn.1002e7b0
mov edi, dword [ebp - 0xec]
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xc4], 0
jne 0x10048469
mov edx, dword [ebp - 0xc8]
cmp dword [ebp - 0x114], edx
jae 0x10048469
movzx ecx, byte [edi + 0x21]
mov edx, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0xc8]
lea eax, [ebp - 0x68]
push eax
push ecx
push 0
push edx
call fcn.10039b00
add esp, 0x10
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x1004ae44
mov esi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebp - 0xc8]
add eax, esi
add esi, dword [ebp - 0xdc]
cmp dword [ebp - 0x98], 0
mov dword [ebp - 0xd4], eax
jbe 0x1004852d
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x98]
sub eax, ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xdc], edx
cmp esi, dword [ebp - 0xd4]
jae 0x10048515
mov edx, dword [ebp - 0xc8]
mov dword [eax + ecx], edx
movzx eax, byte [esi]
mov dword [ecx], eax
cmp eax, 0x7f
ja 0x100484e7
mov eax, 1
add esi, eax
mov eax, dword [ecx]
call fcn.1003ba50
add dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xbc]
jmp 0x1004851c
mov edi, dword [ebp - 0x8c]
call fcn.1002e7b0
mov ecx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0xec]
add esi, eax
mov eax, dword [ecx]
call fcn.1003ba50
add dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xbc]
jmp 0x1004851c
mov dword [eax + ecx], 0
add ecx, 4
dec dword [ebp - 0xdc]
mov dword [ebp - 0x8c], ecx
jne 0x100484b0
test byte [ebp - 0x50], 0x40
je 0x1004853f
lea eax, [ebp - 0x68]
push eax
call fcn.10039280
add esp, 4
mov ecx, 1
mov word [ebp - 0x50], cx
cmp esi, dword [ebp - 0xd4]
ja 0x1004865c
mov edx, dword [ebp - 0xd0]
cmp dword [ebp - 0xc8], edx
ja 0x1004865c
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xac]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x100485ee
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x10048587
add ecx, eax
jmp 0x100485cd
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + edx*4]
call fcn.1003ba50
lea edx, [ebp - 0x68]
push edx
movzx edx, byte [edi + 0x21]
push edx
push ecx
mov ecx, dword [ebp - 0xa8]
push ecx
mov ebx, eax
call fcn.10039b00
add esp, 0x10
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x1004ae44
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x84]
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xac]
mov eax, dword [edx + eax*4]
mov esi, ebx
call fcn.1003baf0
mov cl, byte [ebp - 0x91]
mov byte [ebx + 0x1b], cl
jmp 0x10048630
mov edx, dword [ebp - 0x88]
cmp dword [edx + 0x10], 0xfffffff8
jne 0x10048627
mov eax, edx
mov esi, dword [eax + 0xc]
mov ecx, 8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebx + 0x18]
mov dword [ebx + 0x1c], 0
test al, 0x12
je 0x10048630
and eax, 0xfcbf
or eax, 0x80
mov word [ebx + 0x18], ax
jmp 0x10048630
mov ecx, 1
mov word [ebx + 0x18], cx
test byte [ebp - 0x50], 0x40
je 0x1004864a
mov dx, word [ebx + 0x18]
mov eax, 0xfeff
and dx, ax
or dx, 0x60
mov word [ebx + 0x18], dx
mov esi, ebx
call fcn.10039020
mov dword [ebp - 0x8c], eax
jmp case.0x10046f9b.47
mov dword [ebp - 0x8c], 0xb
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov esi, dword [eax + 4]
xor ecx, ecx
xor edi, edi
cmp esi, edi
setl cl
xor edx, edx
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0x98], edi
mov dword [ebp - 0xd4], edi
test ecx, ecx
sete dl
mov dword [ebp - 0xdc], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x88], ecx
lea edx, [edx + edx - 1]
imul esi, edx
xor edx, edx
cmp byte [eax], 0x34
mov eax, dword [eax + 0xc]
sete dl
mov ecx, esi
mov dword [ebp - 0xc8], esi
shl ecx, 6
mov esi, ebx
sub esi, ecx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa8], edx
mov edx, dword [ebp - 0x90]
movzx eax, byte [edx + 0x239]
mov dword [ebp - 0xec], esi
add esi, 0x40
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xc4], eax
cmp esi, ebx
ja 0x10048773
mov eax, 0xffffffe8
sub eax, esi
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xa4], 0
je 0x10048731
mov ecx, dword [ebp - 0xbc]
mov dl, byte [ebp - 0x91]
lea eax, [esi + ecx + 0x18]
mov ecx, dword [ebp - 0xa4]
sar eax, 6
mov al, byte [eax + ecx]
mov ecx, esi
call fcn.10046db0
test byte [esi + 0x18], 1
je 0x10048741
mov dword [ebp - 0xd4], 1
mov edx, dword [ebp - 0xc4]
push edx
mov eax, esi
call fcn.1003b960
add esp, 4
mov ecx, eax
call fcn.1003ba50
add dword [ebp - 0x98], eax
push 0
push ecx
call fcn.1002e810
add esi, 0x40
add esp, 8
add edi, eax
cmp esi, ebx
jbe 0x10048705
cmp dword [ebp - 0xa8], 0
je 0x100487b5
mov esi, dword [ebp - 0xec]
mov eax, esi
mov dword [ebp - 0xb4], esi
call fcn.10039400
push 0
mov eax, esi
call fcn.1003b960
add esp, 4
mov ecx, eax
call fcn.1003ba50
add dword [ebp - 0x98], eax
push 0
push ecx
call fcn.1002e810
add esp, 8
add edi, eax
mov eax, edi
cdq
push edx
push eax
call fcn.1002e810
mov esi, eax
add edi, esi
mov eax, edi
cdq
push edx
push eax
call fcn.1002e810
add esp, 0x10
cmp esi, eax
jge 0x100487d5
inc edi
mov eax, dword [ebp - 0x98]
add eax, edi
mov dword [ebp - 0xbc], eax
cmp eax, 0x20
jbe 0x10048809
test eax, eax
jle 0x1004b107
push eax
call fcn.1002da00
add esp, 4
mov dword [ebp - 0x98], eax
test eax, eax
je 0x1004b107
jmp 0x10048812
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x98], ecx
mov eax, edi
mov edi, dword [ebp - 0x98]
cdq
push edx
push eax
mov ecx, edi
call fcn.1002e5b0
lea esi, [edi + eax]
mov edi, dword [ebp - 0xac]
add esp, 8
cmp edi, ebx
ja 0x1004885b
mov edx, dword [ebp - 0xc4]
push edx
mov eax, edi
call fcn.1003b960
add esp, 4
push 0
push eax
mov ecx, esi
call fcn.1002e5b0
add edi, 0x40
add esp, 8
add esi, eax
cmp edi, ebx
jbe 0x10048834
cmp dword [ebp - 0xa8], 0
je 0x10048883
mov eax, dword [ebp - 0xb4]
push 0
call fcn.1003b960
add esp, 4
push 0
push eax
mov ecx, esi
call fcn.1002e5b0
add esp, 8
add esi, eax
mov edi, dword [ebp - 0xac]
cmp edi, ebx
ja 0x100488b2
lea ecx, [ecx]
mov eax, dword [ebp - 0xc4]
mov ecx, edi
mov ebx, esi
call fcn.1003ba70
add edi, 0x40
add esi, eax
cmp edi, dword [ebp - 0x84]
jbe 0x10048890
mov ebx, dword [ebp - 0x84]
cmp dword [ebp - 0xa8], 0
je 0x100488d0
mov ecx, dword [ebp - 0xb4]
xor eax, eax
mov ebx, esi
call fcn.1003ba70
mov ebx, dword [ebp - 0x84]
cmp dword [ebp - 0xdc], 0
jne 0x100488fa
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0xa8]
lea edx, [ebp - 0x84]
push edx
call fcn.10046be0
mov ebx, dword [ebp - 0x84]
add esp, 4
mov ecx, dword [ebp - 0xbc]
add ebx, 0x40
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x14], ecx
cmp ecx, 0x20
ja 0x10048930
push ecx
lea ecx, [ebp - 0x24]
lea eax, [ebx + 0x20]
push ecx
push eax
mov dword [ebx + 0x10], eax
call fcn.100a0e30
mov edx, 0x210
add esp, 0xc
mov word [ebx + 0x18], dx
jmp 0x10048949
mov eax, dword [ebp - 0x98]
mov dword [ebx + 0x10], eax
mov ecx, 0x50
mov word [ebx + 0x18], cx
mov dword [ebx + 0x1c], 0
mov eax, dword [ebp - 0x88]
mov byte [ebx + 0x1b], 1
test eax, eax
je case.0x10046f9b.47
cmp dword [ebp - 0xd4], 0
je case.0x10046f9b.47
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 4]
test eax, eax
js case.0x10046f9b.47
mov ecx, dword [ebp - 0x9c]
cmp eax, dword [ecx]
jge case.0x10046f9b.47
lea edx, [eax + eax*2]
mov eax, ecx
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je case.0x10046f9b.47
mov edx, dword [ebp - 0x9c]
cmp byte [edx + 0x10], 0
jne case.0x10046f9b.47
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x100489c8
cmp byte [ecx + 0xc], 0
jne case.0x10046f9b.47
call fcn.10030f10
mov dword [ebp - 0x8c], eax
jmp case.0x10046f9b.47
mov edi, dword [ebp - 0x88]
mov esi, dword [ebp - 0x9c]
cmp dword [esi + 0x4c], 1
mov al, byte [edi + 4]
mov cl, byte [edi + 8]
mov byte [ebp - 0xad], al
jle 0x10048a3e
test al, al
je 0x10048a3e
cmp byte [esi + 0x10], 0
jne 0x10048a3e
mov eax, str.rollback
test cl, cl
jne 0x10048a0e
mov eax, str.commit
push 0
push str._transaction___SQL_statements_in_progress
push eax
mov eax, dword [ebp - 0x90]
add eax, 0x230
push str.cannot
push eax
call fcn.1002dc00
add esp, 0x14
mov dword [ebp - 0x8c], 1
jmp case.0x10046f9b.47
cmp al, byte [esi + 0x10]
jne 0x1004afb5
test al, al
jne 0x10048a52
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x10048a60
mov eax, str.cannot_rollback___no_transaction_is_active
test cl, cl
jne 0x10048a60
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, dword [ebp - 0x90]
push 0
push eax
add ecx, 0x230
push ecx
call fcn.1002dc00
add esp, 0xc
mov dword [ebp - 0x8c], 1
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ecx + 4]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
test eax, eax
je case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 8]
push edx
push eax
call fcn.100303f0
add esp, 8
mov dword [ebp - 0x8c], eax
cmp eax, 5
je 0x1004b02c
test eax, eax
je case.0x10046f9b.47
cmp eax, 8
jne 0x10048e00
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x9c]
lea eax, [ebp - 0x164]
push eax
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*8 + 4]
inc edi
call fcn.10035440
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x164]
cdq
add esp, 4
add ebx, 0x40
mov dword [ebx], eax
mov ecx, 4
mov dword [ebx + 4], edx
mov dword [ebp - 0x84], ebx
mov word [ebx + 0x18], cx
jmp case.0x10046f9b.47
mov edi, dword [ebp - 0x88]
mov eax, dword [edi + 4]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax + 4]
mov eax, ebx
lea esi, [ecx + edx*8]
call fcn.10039400
mov edi, dword [edi + 8]
mov ebx, dword [ebx]
mov eax, dword [esi + 4]
inc edi
call fcn.10035530
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x8c], eax
mov eax, dword [ecx + 8]
test eax, eax
jne 0x10048b8e
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov edx, dword [esi + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0x9c]
or dword [eax + 8], 0x10
jmp 0x10048ba1
cmp eax, 1
jne 0x10048ba1
mov eax, dword [ebp - 0x84]
mov edx, dword [esi + 0x14]
mov al, byte [eax]
mov byte [edx + 0x78], al
sub dword [ebp - 0x84], 0x40
cmp dword [ecx + 4], 1
jne 0x1004ae44
mov eax, dword [ebp - 0x9c]
call fcn.1003c320
jmp 0x1004ae44
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx*8 + 4]
xor ecx, ecx
cmp eax, ecx
je 0x10048c41
lea edx, [ebp - 0x124]
push edx
lea edi, [ecx + 1]
call fcn.10035440
add esp, 4
mov dword [ebp - 0x8c], eax
test eax, eax
jne case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x124]
cmp ecx, dword [eax + 8]
je case.0x10046f9b.47
mov edx, dword [ebp - 0x90]
push 0
add edx, 0x230
push str.database_schema_has_changed
push edx
call fcn.1002dc00
add esp, 0xc
mov dword [ebp - 0x8c], 0x11
jmp case.0x10046f9b.47
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x124], ecx
jmp 0x10048c01
mov edi, dword [ebp - 0x88]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [ebp - 0xd4], eax
mov eax, ebx
mov dword [ebp - 0xbc], ecx
call fcn.10039400
mov esi, dword [ebx]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax + 4]
lea edx, [esi + esi*2]
lea eax, [ecx + edx*8]
mov edx, dword [eax + 4]
sub ebx, 0x40
cmp byte [edi], 0x16
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0xec], edx
jne 0x10048cbc
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x78]
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa4], 1
cmp al, byte [ecx + 0x239]
jae 0x10048cc6
mov byte [ecx + 0x239], al
jmp 0x10048cc6
mov dword [ebp - 0xa4], 0
mov edi, dword [ebp - 0xbc]
test edi, edi
jg 0x10048ce2
mov eax, ebx
call fcn.10039400
mov edi, dword [ebx]
sub ebx, 0x40
mov dword [ebp - 0x84], ebx
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0xd4]
push esi
push ecx
call fcn.10046c60
mov esi, eax
add esp, 8
test esi, esi
je 0x1004b101
mov eax, dword [ebp - 0xec]
mov byte [esi + 0x1c], 1
test eax, eax
je 0x1004ae44
mov ebx, dword [ebp - 0x88]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0xa4]
push esi
push edx
push fcn.1003bd10
push ecx
push edi
push eax
call fcn.10030fc0
add esp, 0x18
cmp dword [ebx + 0x10], 0xfffffffa
mov edi, eax
mov dword [ebp - 0x8c], edi
jne 0x10048d65
mov ecx, dword [ebx + 0xc]
mov dword [esi + 0x4c], ecx
inc ecx
mov dword [esi + 0x48], ecx
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov edx, dword [eax + 0x14]
mov eax, dword [esi + 0x4c]
mov dl, byte [edx + 0x79]
mov byte [eax], dl
jmp 0x10048d78
mov ecx, dword [ebp - 0x90]
lea eax, [esi + 0x22]
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], eax
test edi, edi
je 0x10048dab
cmp edi, 5
je 0x1004b05e
cmp edi, 0x10
jne 0x10048dfa
cmp dword [ebx + 0x10], 0xfffffffa
mov dword [ebp - 0x8c], 0
setne al
test al, al
sete cl
mov byte [esi + 0x20], al
mov byte [esi + 0x21], cl
jmp 0x1004ae44
mov eax, dword [esi]
call fcn.10035580
test al, 0xf0
jne 0x10048df0
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x10048dc5
cmp ecx, 2
jne 0x10048df0
mov dl, al
shr eax, 1
and dl, 1
and al, 1
mov byte [esi + 0x20], dl
mov byte [esi + 0x21], al
test dl, dl
je 0x10048dde
cmp dword [ebx + 0x10], 0xfffffffa
je 0x10048df0
test al, al
je 0x1004ae44
cmp dword [ebx + 0x10], 0xfffffffa
je 0x1004ae44
mov dword [ebp - 0x8c], 0xb
mov ebx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x90]
add edx, 0x230
cmp dword [edx], 0
jne 0x1004b156
call fcn.1002e980
test eax, eax
je 0x1004b12f
mov dword [ebp - 0x8c], 7
mov eax, dword [ebp - 0x8c]
call fcn.1002b5f0
jmp 0x1004b14a
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x90]
mov ebx, dword [eax + 4]
push 0xffffffffffffffff
push ecx
call fcn.10046c60
add esp, 8
mov dword [ebp - 0xb4], eax
test eax, eax
je 0x1004b101
mov ebx, dword [ebp - 0x9c]
mov byte [eax + 0x1c], 1
lea esi, [eax + 0x30]
xor eax, eax
test dword [ebx + 8], 0x1000
mov dword [ebp - 0xa4], esi
lea ecx, [eax + 1]
je 0x10048e88
lea ecx, [eax + 3]
cmp byte [ebx + 0x11], 2
jne 0x10048e93
mov eax, str.:memory:
push ecx
push ebx
push eax
mov ecx, esi
call fcn.1002fa50
add esp, 0xc
test eax, eax
jne 0x10048ec5
mov edx, dword [esi]
mov edx, dword [edx + 4]
lea ecx, [ebx + 0xe0]
mov dword [edx + 0x28], ecx
mov edx, dword [edx]
mov dword [edx + 0x64], ecx
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov ecx, dword [edx]
mov dword [ecx + 0x40], 0x1f4
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10049390
mov esi, dword [esi]
mov ebx, dword [esi + 4]
xor edi, edi
cmp byte [esi + 8], 2
mov dword [ebp - 0xbc], esi
je 0x10049006
cmp byte [ebx + 0xd], 0
je 0x10048eff
mov dword [ebp - 0x8c], 8
jmp 0x10049390
cmp byte [ebx + 0x2c], 2
jne 0x10048f14
mov dword [ebp - 0x8c], 5
jmp 0x10049390
cmp dword [ebx + 8], 0
jne 0x10048f23
mov esi, ebx
call fcn.10030030
mov edi, eax
test edi, edi
jne 0x10048f4b
mov edx, dword [ebx + 8]
mov eax, dword [edx + 0x44]
push edi
call fcn.1004fb20
mov edi, eax
add esp, 4
test edi, edi
jne 0x10048f4b
call fcn.10030340
mov edi, eax
test edi, edi
je 0x10048fd1
cmp byte [ebx + 0x2c], 0
jne 0x10048f93
cmp dword [ebx + 4], 0
jne 0x10048f93
mov eax, dword [ebx + 8]
test eax, eax
je 0x10048f93
cmp dword [eax + 0x44], 0
jne 0x10048f79
movzx ecx, word [ebx + 0x14]
mov edx, eax
sub edx, ecx
mov dword [eax + 0x44], edx
mov dword [eax + 0x40], ebx
mov dword [eax + 0x48], 1
mov eax, dword [ebx + 8]
test eax, eax
je 0x10048f88
mov edx, dword [eax + 0x44]
call fcn.1004f930
mov dword [ebx + 8], 0
mov byte [ebx + 0xc], 0
cmp edi, 5
jne 0x10048fd7
cmp byte [ebx + 0x2c], 0
jne 0x10048ff8
mov esi, dword [ebx + 0x28]
test esi, esi
je 0x10048ff8
mov ecx, dword [esi]
test ecx, ecx
je 0x10048ff8
mov eax, dword [esi + 8]
test eax, eax
js 0x10048ff8
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 8
test eax, eax
je 0x10048fc8
inc dword [esi + 8]
jmp 0x10048f14
mov dword [esi + 8], 0xffffffff
jmp 0x10048ff8
mov byte [ebx + 0xc], 0
jmp 0x10048fdb
test edi, edi
jne 0x10048ff8
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 8], 0
jne 0x10048fea
inc dword [ebx + 0x34]
mov byte [eax + 8], 2
cmp byte [ebx + 0x2c], 2
jae 0x10048ff8
mov byte [ebx + 0x2c], 2
mov dword [ebp - 0x8c], edi
test edi, edi
jne 0x10049390
mov edi, dword [ebp - 0x88]
cmp dword [edi + 0xc], 0
je 0x10049212
mov esi, dword [ebp - 0xa4]
mov edx, dword [esi]
push 2
lea ecx, [ebp - 0x158]
push ecx
push edx
call fcn.10034db0
add esp, 0xc
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10049203
mov eax, dword [edi + 0xc]
mov esi, dword [esi]
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + 4]
mov dword [ecx], 0
cmp byte [eax + 0xd], 0
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xa8], eax
je 0x10049079
mov dword [ebp - 0x8c], 8
jmp 0x100491d7
mov edi, dword [ebp - 0x158]
mov eax, dword [ebp - 0xa8]
xor ebx, ebx
call fcn.10034870
test eax, eax
je 0x1004909f
mov dword [ebp - 0x8c], 6
jmp 0x100491d7
mov edx, dword [ebp - 0xa8]
cmp dword [edx + 8], ebx
jne 0x100490c2
push esi
call fcn.100301f0
add esp, 4
test eax, eax
je 0x100490c2
mov dword [ebp - 0x8c], eax
jmp 0x100491d7
cmp dword [0x100f0574], ebx
je 0x100490d2
cmp dword [0x100f0580], ebx
jg 0x100490f2
push 0x58
call fcn.1009ce65
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x1004910d
mov eax, 1
add dword [0x100f0580], eax
mov dword [0x100f0574], eax
mov esi, dword [ebp - 0xa8]
mov edi, 7
call fcn.100302f0
mov dword [ebp - 0x8c], edi
jmp 0x100491d7
push 0x58
push 0
push ebx
call fcn.100a39b0
add esp, 0xc
mov dword [ebx + 0x14], edi
cmp edi, 1
jne 0x10049138
mov eax, dword [ebp - 0xa8]
mov edi, dword [eax]
call fcn.1004ed80
test eax, eax
jne 0x10049138
lea edi, [eax + 0x10]
jmp 0x10049155
mov esi, dword [ebx + 0x14]
mov edi, dword [ebp - 0xa8]
lea ecx, [ebx + 0x18]
push 0
push ecx
call fcn.1002f990
mov edi, eax
add esp, 8
test edi, edi
je 0x10049180
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10049164
mov edx, dword [eax + 0x44]
call fcn.1004f930
push ebx
call fcn.1009cc76
mov esi, dword [ebp - 0xa8]
add esp, 4
call fcn.100302f0
mov dword [ebp - 0x8c], edi
jmp 0x100491d7
mov edx, fcn.1003bd10
mov eax, fcn.1003bd10
test edx, edx
jne 0x10049193
mov eax, 0x1002b180
mov ecx, dword [ebp - 0xa4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebx], ecx
mov ecx, dword [ebp - 0xa8]
mov dword [ebx + 0x10], eax
mov byte [ebx + 0x40], 1
mov eax, dword [ecx + 4]
mov dword [ebx + 4], eax
test eax, eax
je 0x100491be
mov dword [eax + 8], ebx
mov edx, dword [ebp - 0xb4]
mov dword [ecx + 4], ebx
mov byte [ebx + 0x41], 0
mov dword [edx], ebx
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x90]
mov dword [ecx + 0x4c], eax
mov edx, dword [edx]
mov edx, dword [edx + 4]
mov edx, dword [edx + 0x14]
mov dl, byte [edx + 0x79]
mov byte [eax], dl
mov eax, dword [ecx + 0x4c]
inc eax
mov dword [ecx + 0x48], eax
mov ecx, dword [ebp - 0xb4]
mov byte [ecx + 0x20], 0
jmp 0x10049390
mov edx, dword [ebp - 0xa4]
mov esi, dword [edx]
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx], 0
cmp byte [eax + 0xd], 0
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0x98], eax
je 0x1004924a
mov dword [ebp - 0x8c], 8
jmp 0x10049380
xor ebx, ebx
lea edi, [ebx + 1]
call fcn.10034870
test eax, eax
je 0x10049267
mov dword [ebp - 0x8c], 6
jmp 0x10049380
mov edi, dword [ebp - 0x98]
cmp dword [edi + 8], ebx
jne 0x1004928a
push esi
call fcn.100301f0
add esp, 4
test eax, eax
je 0x1004928a
mov dword [ebp - 0x8c], eax
jmp 0x10049380
cmp dword [0x100f0574], ebx
je 0x1004929a
cmp dword [0x100f0580], ebx
jg 0x100492ba
push 0x58
call fcn.1009ce65
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x100492d5
mov eax, 1
add dword [0x100f0580], eax
mov dword [0x100f0574], eax
mov esi, dword [ebp - 0x98]
mov edi, 7
call fcn.100302f0
mov dword [ebp - 0x8c], edi
jmp 0x10049380
push 0x58
push 0
push ebx
call fcn.100a39b0
mov dword [ebx + 0x14], 1
mov edi, dword [edi]
add esp, 0xc
call fcn.1004ed80
test eax, eax
jne 0x100492f9
lea edi, [eax + 0x10]
jmp 0x10049318
mov esi, dword [ebx + 0x14]
mov edi, dword [ebp - 0x98]
lea edx, [ebx + 0x18]
push 0
push edx
call fcn.1002f990
mov edi, eax
xor edx, edx
add esp, 8
cmp edi, edx
je 0x10049343
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10049327
mov edx, dword [eax + 0x44]
call fcn.1004f930
push ebx
call fcn.1009cc76
mov esi, dword [ebp - 0x98]
add esp, 4
call fcn.100302f0
mov dword [ebp - 0x8c], edi
jmp 0x10049380
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x98]
mov dword [ebx + 0xc], 0x1002b180
mov dword [ebx + 0x10], edx
mov dword [ebx], eax
mov byte [ebx + 0x40], 1
mov eax, dword [ecx + 4]
mov dword [ebx + 4], eax
cmp eax, edx
je 0x1004936c
mov dword [eax + 8], ebx
mov dword [ecx + 4], ebx
mov ecx, dword [ebp - 0xb4]
mov byte [ebx + 0x41], dl
mov dword [ecx], ebx
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0xb4]
lea edx, [eax + 0x22]
mov byte [eax + 0x20], 1
mov dword [eax + 0x48], edx
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0xb4]
cmp byte [eax + 0x20], 0
mov dword [eax + 0x50], ecx
sete dl
mov byte [eax + 0x21], dl
jmp 0x1004ae44
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x90]
mov ebx, dword [eax + 4]
push 0xffffffffffffffff
push ecx
call fcn.10046c60
add esp, 8
test eax, eax
je 0x1004b101
mov cl, 1
lea edx, [eax + 0x22]
mov byte [eax + 0x1c], cl
mov byte [eax + 0x1e], cl
mov dword [eax + 0x48], edx
mov word [eax + 0x20], 1
jmp 0x1004ae44
mov eax, dword [ebp - 0x88]
mov esi, dword [eax + 4]
test esi, esi
js case.0x10046f9b.47
mov ecx, dword [ebp - 0x90]
cmp esi, dword [ecx + 0x38]
jge case.0x10046f9b.47
mov edx, ecx
mov eax, dword [edx + 0x3c]
mov edi, dword [eax + esi*4]
call fcn.1003ac90
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx + 0x3c]
mov dword [edx + esi*4], 0
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x3c]
mov esi, dword [eax + ecx*4]
xor edi, edi
cmp dword [esi], edi
je 0x100495b0
mov byte [esi + 0x1c], 0
cmp edx, 7
je 0x1004945f
cmp edx, 0x20
je 0x1004945f
xor eax, eax
jmp 0x10049464
mov eax, 1
mov ecx, dword [esi + 0x48]
mov byte [ecx], al
cmp byte [esi + 0x20], 0
je 0x100494de
mov eax, ebx
call fcn.10039400
mov edx, dword [ebp - 0x88]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp dword [edx + 8], edi
jne 0x100494a3
cmp byte [edx], 0x6f
jne 0x100494a3
sub ebx, 0x40
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov byte [esi + 0x1f], 1
mov dword [ebp - 0x84], ebx
jmp case.0x10046f9b.47
lea edx, [ebp - 0xcc]
push edx
push ecx
push eax
mov eax, dword [esi]
push edi
call fcn.10031a40
add esp, 0x10
mov dword [ebp - 0x8c], eax
cmp eax, edi
jne 0x10048e00
mov eax, dword [ebx]
cmp dword [ebp - 0xcc], edi
mov dword [esi + 8], eax
mov ecx, dword [ebx + 4]
sete dl
mov dword [esi + 0xc], ecx
mov byte [esi + 0x19], dl
jmp 0x1004950b
mov ecx, dword [ebx + 0x10]
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
mov eax, dword [esi]
push ecx
call fcn.10031a40
add esp, 0x10
mov dword [ebp - 0x8c], eax
cmp eax, edi
jne 0x10048e00
mov byte [esi + 0x19], 0
mov eax, dword [ebp - 0xa4]
mov edx, dword [esi + 0x48]
inc dword [0x100f0588]
mov byte [esi + 0x1f], 0
mov dword [esi + 0x60], edi
mov byte [edx], 0
cmp eax, 0x6f
je 0x10049576
cmp eax, 7
je 0x10049576
cmp dword [ebp - 0xcc], edi
jl 0x10049547
mov ecx, dword [esi]
lea eax, [ebp - 0xcc]
push eax
push ecx
call fcn.10031f70
jmp 0x1004958d
mov edx, dword [esi]
xor eax, eax
cmp byte [edx + 0x41], 1
setne al
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], edi
je 0x100495b0
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
cmp eax, edi
jle 0x100495ac
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x100495b0
cmp dword [ebp - 0xcc], edi
jge 0x100495a4
mov edx, dword [esi]
lea ecx, [ebp - 0xcc]
push ecx
push edx
call fcn.10031dd0
add esp, 8
mov dword [ebp - 0x8c], eax
cmp eax, edi
jne 0x10048e00
mov byte [esi + 0x19], 0
jmp 0x10049558
mov dword [ebp - 0xcc], edi
jmp 0x100495b0
mov byte [esi + 0x1c], 1
test byte [ebx + 0x18], 0x40
je 0x100495bf
push ebx
call fcn.10039280
add esp, 4
sub ebx, 0x40
mov dword [ebp - 0x84], ebx
jmp case.0x10046f9b.47
mov esi, dword [ebp - 0x88]
mov edx, dword [ebp - 0x90]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 0x3c]
mov edi, dword [edx + ecx*4]
xor eax, eax
cmp dword [edi], eax
je 0x1004964b
test byte [ebx + 0x18], 0x12
jne 0x1004960a
movzx ebx, byte [ebp - 0x91]
mov esi, dword [ebp - 0x84]
call fcn.10039160
test eax, eax
jne 0x1004b101
mov ebx, esi
mov ecx, dword [ebx + 0x10]
lea eax, [ebp - 0x170]
push eax
mov eax, dword [ebx + 0x14]
cdq
push edx
push eax
mov eax, dword [edi]
push ecx
call fcn.10031a40
add esp, 0x10
test eax, eax
jne 0x10049638
cmp dword [ebp - 0x170], eax
jne 0x10049638
mov eax, 1
jmp 0x1004963a
xor eax, eax
mov esi, dword [ebp - 0x88]
mov byte [edi + 0x1f], 0
mov dword [edi + 0x60], 0
mov cl, byte [esi]
cmp cl, 0x65
jne 0x10049658
test eax, eax
je 0x10049666
jmp 0x1004965c
test eax, eax
jne 0x10049666
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0xa0], eax
cmp cl, 0x66
je case.0x10046f9b.47
jmp 0x100495b0
mov edx, dword [ebp - 0x88]
mov edi, dword [edx + 4]
mov eax, ebx
lea esi, [ebx - 0x40]
call fcn.10039400
mov eax, dword [ebx]
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x148], eax
mov eax, dword [edx + 0x3c]
mov edi, dword [eax + edi*4]
mov eax, dword [edi]
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x84], esi
mov dword [ebp - 0xac], eax
test eax, eax
je 0x1004ae44
test byte [esi + 0x18], 0x12
jne 0x100496d4
movzx ebx, byte [ebp - 0x91]
call fcn.10039160
test eax, eax
jne 0x1004b101
mov ebx, dword [esi + 0x10]
mov eax, ebx
call fcn.1003c110
mov esi, dword [esi + 0x14]
sub esi, eax
lea ecx, [ebp - 0xf4]
push ecx
mov eax, esi
cdq
push edx
push eax
mov eax, dword [ebp - 0xac]
push ebx
mov dword [edi + 0x60], 0
call fcn.10031a40
add esp, 0x10
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048dfa
cmp dword [ebp - 0xf4], eax
jge 0x10049755
mov eax, dword [ebp - 0xac]
lea edx, [ebp - 0xf4]
push edx
push eax
call fcn.10031dd0
add esp, 8
cmp dword [ebp - 0xf4], 0
mov dword [ebp - 0x8c], eax
je 0x10049755
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x1004ae44
push ebx
push esi
lea edx, [ebp - 0xf4]
mov ecx, edi
call fcn.1003c230
add esp, 8
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048dfa
cmp dword [ebp - 0xf4], eax
jle 0x10049792
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x1004ae44
mov ecx, dword [ebp - 0xac]
lea eax, [ebp - 0x178]
push eax
call fcn.1003c150
add esp, 4
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048dfa
mov ecx, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
cmp ecx, dword [ebp - 0x148]
jne 0x100497e6
cmp edx, dword [ebp - 0x144]
jne 0x100497e6
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x1004ae44
mov eax, dword [ebp - 0x84]
add eax, 0x40
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, 4
mov dword [ebp - 0x84], eax
mov word [eax + 0x18], dx
jmp 0x1004ae44
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x3c]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi]
test eax, eax
je 0x100495b0
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
lea edi, [ebp - 0x150]
push edi
push edx
push ecx
push 0
call fcn.10031a40
mov ecx, dword [ebx]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x150]
add esp, 0x10
test eax, eax
mov dword [esi + 8], ecx
mov edx, dword [ebx + 4]
sete cl
mov dword [esi + 0xc], edx
mov byte [esi + 0x19], cl
mov byte [esi + 0x1c], 0
mov dword [esi + 0x60], 0
test eax, eax
je 0x100495b0
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xa0], eax
mov byte [esi + 0x19], 0
jmp 0x100495b0
mov edx, dword [ebp - 0x90]
mov ecx, dword [edx + 0x3c]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + eax*4]
mov esi, dword [ecx + 0x58]
add ebx, 0x40
mov dword [ebx], esi
mov ecx, dword [ecx + 0x5c]
mov dword [ebx + 4], ecx
mov edx, dword [edx + 0x3c]
mov eax, dword [edx + eax*4]
add dword [eax + 0x58], 1
mov dword [ebp - 0x84], ebx
adc dword [eax + 0x5c], 0
mov eax, 4
mov word [ebx + 0x18], ax
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x90]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x84], eax
mov eax, dword [eax]
xor edi, edi
xor esi, esi
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x10049b86
mov dword [ebp - 0xac], esi
call fcn.10035580
and al, 3
cmp al, 1
jne 0x1004b09c
mov eax, dword [ebp - 0x84]
cmp byte [eax + 0x1b], 0
jne 0x10049a61
cmp byte [eax + 0x1d], 0
je 0x1004993d
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
jmp 0x100499ad
mov eax, dword [ebp - 0xbc]
lea edi, [ebp - 0x100]
call fcn.10031a10
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048e00
cmp dword [ebp - 0x100], esi
je 0x1004996b
lea edi, [eax + 1]
xor esi, esi
jmp 0x100499ad
mov eax, dword [ebp - 0x84]
mov esi, dword [eax]
lea edx, [ebp - 0xe8]
push edx
call fcn.100311d0
mov edi, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe4]
add esp, 4
cmp edi, 0xffffffff
jne 0x100499a7
cmp esi, 0x7fffffff
jne 0x100499a7
mov ecx, dword [ebp - 0x84]
mov byte [ecx + 0x1b], 1
jmp 0x100499ad
add edi, 1
adc esi, 0
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
test eax, eax
je 0x10049a1c
mov ecx, dword [ebp - 0x90]
shl eax, 6
add eax, dword [ecx + 0x58]
mov dword [ebp - 0xa4], eax
call fcn.10039400
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
cmp eax, 0xffffffff
jne 0x100499ed
cmp ecx, 0x7fffffff
je 0x1004b0ab
mov edx, dword [ebp - 0x84]
cmp byte [edx + 0x1b], 0
jne 0x1004b0ab
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x10049a11
jl 0x10049a0d
cmp edi, eax
jae 0x10049a11
mov edi, eax
mov esi, ecx
mov eax, dword [ebp - 0xa4]
mov dword [eax], edi
mov dword [eax + 4], esi
cmp esi, 0x7fffffff
ja 0x10049a47
jb 0x10049a2b
cmp edi, 0xffffffff
jae 0x10049a47
mov eax, dword [ebp - 0x84]
mov ecx, edi
add ecx, 1
mov edx, esi
adc edx, 0
mov byte [eax + 0x1d], 1
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x10049a51
mov eax, dword [ebp - 0x84]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x84]
cmp byte [eax + 0x1b], 0
je 0x10049b71
mov eax, dword [ebp - 0x9c]
mov edi, dword [eax + 0x28]
mov esi, dword [eax + 0x2c]
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0x98], 0
mov ecx, edi
or ecx, esi
je 0x10049ac1
cmp dword [ebp - 0x98], 2
jg 0x10049ac1
lea edx, [ebp - 0xd5]
push edx
mov ecx, 1
call fcn.10053040
movzx eax, byte [ebp - 0xd5]
inc eax
cdq
add esp, 4
add edi, eax
adc esi, edx
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], esi
jmp 0x10049b00
lea eax, [ebp - 0xe8]
push eax
mov ecx, 8
call fcn.10053040
mov edi, dword [ebp - 0xe8]
add esp, 4
cmp dword [ebp - 0x98], 5
jge 0x10049afa
and edi, 0xffffff
xor esi, esi
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], esi
jmp 0x10049b00
mov esi, dword [ebp - 0xe4]
mov ecx, edi
or ecx, esi
je 0x10049b2d
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
lea edx, [ebp - 0x100]
push edx
push esi
push edi
push 0
call fcn.10031a40
add esp, 0x10
inc dword [ebp - 0x98]
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0x98], 0x3e8
jge 0x10049b4f
cmp dword [ebp - 0xac], 0
jne 0x10049b4f
cmp dword [ebp - 0x100], 0
je 0x10049a83
cmp dword [ebp - 0xac], 0
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], esi
jne 0x10049b71
cmp dword [ebp - 0x100], 0
je 0x1004b0ab
mov eax, dword [ebp - 0x84]
mov byte [eax + 0x19], 0
mov byte [eax + 0x1f], 0
mov dword [eax + 0x60], 0
add ebx, 0x40
mov dword [ebx], edi
mov ecx, 4
mov dword [ebx + 4], esi
mov dword [ebp - 0x84], ebx
mov word [ebx + 0x18], cx
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x90]
mov edx, dword [ecx + 4]
mov esi, dword [eax + 0x3c]
mov esi, dword [esi + edx*4]
cmp dword [esi], 0
jne 0x10049bc6
cmp byte [esi + 0x1e], 0
je 0x10049d46
test byte [ecx + 8], 1
mov edx, dword [ebx - 0x3c]
mov edi, dword [ebx - 0x40]
mov dword [ebp - 0x15c], edx
je 0x10049bde
inc dword [eax + 0x23c]
test byte [ecx + 8], 2
je 0x10049bf6
mov ecx, dword [ebx - 0x40]
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x20], ecx
mov edx, dword [ebx - 0x3c]
mov dword [eax + 0x24], edx
cmp byte [esi + 0x1d], 0
je 0x10049c12
mov eax, dword [ebx - 0x3c]
cmp eax, dword [esi + 0x14]
jl 0x10049c12
jg 0x10049c0e
mov ecx, dword [ebx - 0x40]
cmp ecx, dword [esi + 0x10]
jb 0x10049c12
mov byte [esi + 0x1d], 0
test byte [ebx + 0x18], 1
je 0x10049c20
xor eax, eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
cmp byte [esi + 0x1e], 0
je 0x10049cb2
mov eax, dword [esi + 0x38]
test eax, eax
je 0x10049c3a
push eax
call fcn.1009cc76
add esp, 4
mov edx, dword [ebp - 0x15c]
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edx
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x34], eax
test byte [ebx + 0x18], 0x40
je 0x10049c67
mov eax, dword [ebx + 0x10]
mov ecx, 1
mov dword [esi + 0x38], eax
mov word [ebx + 0x18], cx
mov byte [esi + 0x1c], 0
jmp 0x10049cd5
add eax, 2
test eax, eax
jle 0x10049c79
push eax
call fcn.1002da00
add esp, 4
jmp 0x10049c7b
xor eax, eax
mov dword [esi + 0x38], eax
test eax, eax
je 0x1004b107
mov edx, dword [esi + 0x34]
mov ecx, dword [ebx + 0x10]
push edx
push ecx
push eax
call fcn.100a0e30
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
mov byte [edx + eax], 0
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
mov byte [ecx + edx + 1], 0
add esp, 0xc
mov byte [esi + 0x1c], 0
jmp 0x10049cd5
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebp - 0x15c]
push eax
mov eax, dword [esi]
push ecx
push edx
push edi
push 0
push eax
call fcn.100348d0
add esp, 0x18
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
mov byte [esi + 0x19], 0
mov byte [esi + 0x1f], 0
mov dword [esi + 0x60], 0
jne 0x10049d46
mov ecx, dword [ebp - 0x9c]
mov ecx, dword [ecx + 0x74]
test ecx, ecx
je 0x10049d46
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x10049d46
mov edx, dword [ebp - 0x15c]
mov esi, dword [esi + 4]
push edx
push edi
push eax
mov eax, dword [ebp - 0x9c]
lea edx, [esi + esi*2]
mov esi, dword [eax + 4]
mov edx, dword [esi + edx*8]
mov eax, dword [eax + 0x70]
push edx
mov edx, dword [ebp - 0x88]
mov edx, dword [edx + 8]
and dl, 4
movsx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
lea ecx, [ebp - 0x84]
mov eax, 2
push ecx
call fcn.10046be0
add esp, 4
jmp 0x1004ae44
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx + 0x3c]
mov edi, dword [edx + eax*4]
mov esi, dword [edi]
test esi, esi
je 0x10049e43
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x74], 0
je 0x10049dcd
mov ecx, dword [ebp - 0x88]
cmp dword [ecx + 0xc], 0
je 0x10049dcd
cmp byte [edi + 0x19], 0
je 0x10049db0
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x13c], eax
jmp 0x10049dcd
lea ecx, [ebp - 0x140]
push ecx
call fcn.100311d0
add esp, 4
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048e00
mov esi, edi
call fcn.1003b8e0
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048e00
mov edx, dword [edi]
push edx
call fcn.10034ad0
add esp, 4
mov dword [ebp - 0x8c], eax
mov byte [edi + 0x1d], 0
mov dword [edi + 0x60], 0
test eax, eax
jne 0x10049e43
mov edx, dword [ebp - 0x9c]
mov ecx, dword [edx + 0x74]
test ecx, ecx
je 0x10049e43
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10049e43
mov esi, dword [ebp - 0x13c]
mov edi, dword [edi + 4]
push esi
mov esi, dword [ebp - 0x140]
push esi
mov esi, dword [edx + 4]
mov edx, dword [edx + 0x70]
push eax
lea eax, [edi + edi*2]
mov eax, dword [esi + eax*8]
push eax
push 9
push edx
call ecx
add esp, 0x18
mov eax, dword [ebp - 0x88]
test byte [eax + 8], 1
je case.0x10046f9b.47
mov eax, dword [ebp - 0x90]
inc dword [eax + 0x23c]
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
cmp dword [ecx + 4], 0
je 0x10049e88
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x23c]
mov ecx, dword [ebp - 0x9c]
add dword [ecx + 0x38], eax
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0x90]
mov dword [eax + 0x23c], 0
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x3c]
mov edi, dword [ecx + edx*4]
add ebx, 0x40
cmp byte [edi + 0x1c], 0
mov dword [ebp - 0x84], ebx
jne 0x10049fe3
mov eax, dword [edi]
mov dword [ebp - 0x98], eax
test eax, eax
je 0x10049fbf
mov esi, edi
call fcn.1003b8e0
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048e00
cmp byte [edi + 0x1c], al
je 0x10049efd
mov eax, 1
mov word [ebx + 0x18], ax
jmp case.0x10046f9b.47
cmp byte [edi + 0x21], 0
mov esi, dword [ebp - 0x98]
je 0x10049f23
lea ecx, [ebp - 0x198]
push ecx
call fcn.100311d0
mov esi, dword [ebp - 0x198]
mov dword [ebp - 0x12c], esi
jmp 0x10049f35
lea edx, [ebp - 0x12c]
push edx
call fcn.100312a0
mov esi, dword [ebp - 0x12c]
add esp, 4
mov dword [ebx + 0x14], esi
cmp esi, 0x20
ja 0x10049f51
mov eax, 0x210
lea ecx, [ebx + 0x20]
mov word [ebx + 0x18], ax
mov dword [ebx + 0x10], ecx
jmp 0x10049f7d
test esi, esi
jle 0x1004b107
push esi
call fcn.1002da00
add esp, 4
test eax, eax
je 0x1004b107
mov edx, 0x50
mov word [ebx + 0x18], dx
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x10], eax
cmp byte [edi + 0x21], 0
je 0x10049fa1
mov eax, dword [ebx + 0x10]
push eax
push esi
mov esi, dword [ebp - 0x98]
push 0
call fcn.10031580
add esp, 0xc
mov byte [ebx + 0x1b], 1
jmp case.0x10046f9b.47
mov ecx, dword [ebx + 0x10]
push ecx
push esi
mov esi, dword [ebp - 0x98]
push 0
call fcn.100315d0
add esp, 0xc
mov byte [ebx + 0x1b], 1
jmp case.0x10046f9b.47
cmp byte [edi + 0x1e], 0
je 0x10049fe3
mov edx, dword [edi + 0x34]
mov dword [ebx + 0x14], edx
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x10], eax
mov ecx, 0x110
mov word [ebx + 0x18], cx
mov byte [ebx + 0x1b], 1
jmp case.0x10046f9b.47
mov edx, 1
mov word [ebx + 0x18], dx
mov byte [ebx + 0x1b], dl
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x3c]
mov esi, dword [eax + ecx*4]
call fcn.1003b8e0
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048e00
add ebx, 0x40
mov dword [ebp - 0x84], ebx
cmp byte [esi + 0x19], al
je 0x1004a03e
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x11c], edx
jmp 0x1004a07b
cmp byte [esi + 0x1e], 0
je 0x1004a058
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], ecx
jmp 0x1004a07b
cmp byte [esi + 0x1c], 0
jne 0x10049eef
mov esi, dword [esi]
test esi, esi
je 0x10049eef
lea edx, [ebp - 0x120]
push edx
call fcn.100311d0
add esp, 4
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x11c]
mov dword [ebx], eax
mov edx, 4
mov dword [ebx + 4], ecx
mov word [ebx + 0x18], dx
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx + edx*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx + 0x3c]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x1004a101
lea edi, [ebp - 0x154]
call fcn.10031a10
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x154]
mov byte [esi + 0x1c], al
mov byte [esi + 0x1f], 0
mov dword [esi + 0x60], 0
jmp 0x1004a196
mov byte [esi + 0x1c], 0
jmp case.0x10046f9b.47
mov eax, 1
add dword [0x100f058c], eax
sub dword [0x100f0588], eax
jmp 0x1004a122
mov eax, 1
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx + 0x3c]
mov edi, dword [ecx + edx*4]
mov esi, dword [edi]
test esi, esi
je 0x1004a187
call fcn.10031800
xor ecx, ecx
cmp eax, ecx
jne 0x1004a16c
cmp byte [esi + 0x41], cl
jne 0x1004a15f
mov dword [ebp - 0xf8], 1
mov dword [ebp - 0x8c], ecx
jmp 0x1004a172
mov dword [ebp - 0xf8], ecx
call fcn.10031930
xor ecx, ecx
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0xf8], ecx
mov byte [edi + 0x1f], 0
sete dl
mov byte [edi + 0x1a], dl
mov dword [edi + 0x60], ecx
jmp 0x1004a18d
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf8]
mov byte [edi + 0x1c], al
test eax, eax
je case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
test eax, eax
jle case.0x10046f9b.47
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov esi, dword [ebp - 0x9c]
test byte [esi + 8], 4
jne 0x1004b0ba
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x3c]
mov edx, dword [edi + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
test eax, eax
je 0x1004a256
cmp byte [esi + 0x1c], 0
je 0x1004a1ff
mov dword [ebp - 0x110], 1
mov byte [esi + 0x19], 0
jmp case.0x10046f9b.47
cmp cl, 0x6d
jne 0x1004a213
lea ecx, [ebp - 0x110]
push ecx
push eax
call fcn.10031dd0
jmp 0x1004a220
lea edx, [ebp - 0x110]
push edx
push eax
call fcn.10031f70
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x110]
add esp, 8
mov byte [esi + 0x1c], al
mov dword [esi + 0x60], 0
test eax, eax
jne 0x1004a25a
mov eax, dword [edi + 8]
dec eax
inc dword [0x100f0588]
mov dword [ebp - 0xa0], eax
mov byte [esi + 0x19], 0
jmp case.0x10046f9b.47
mov byte [esi + 0x1c], 1
mov byte [esi + 0x19], 0
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x3c]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi]
test edi, edi
je 0x100495b0
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
push 0
push 0x100cdc9d
cdq
push edx
push eax
push ecx
push edi
call fcn.100348d0
add esp, 0x18
mov dword [ebp - 0x8c], eax
mov dword [esi + 0x60], 0
jmp 0x100495b0
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x3c]
mov edi, dword [ecx + edx*4]
mov esi, dword [edi]
test esi, esi
je 0x100495b0
mov eax, dword [ebx + 0x14]
lea edx, [ebp - 0x14c]
push edx
cdq
push edx
push eax
mov eax, dword [ebx + 0x10]
push eax
mov eax, esi
call fcn.10031a40
add esp, 0x10
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x1004a309
cmp dword [ebp - 0x14c], eax
jne 0x1004a309
push esi
call fcn.10034ad0
add esp, 4
mov dword [ebp - 0x8c], eax
mov dword [edi + 0x60], 0
jmp 0x100495b0
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x90]
add ebx, 0x40
mov edx, 1
mov word [ebx + 0x18], dx
mov edx, dword [ecx + 0x3c]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
mov dword [ebp - 0x84], ebx
test ecx, ecx
je case.0x10046f9b.47
cmp byte [eax + 0x1c], 0
je 0x1004a35a
mov eax, 1
mov word [ebx + 0x18], ax
jmp case.0x10046f9b.47
lea edx, [ebp - 0x190]
push edx
call fcn.1003c150
add esp, 4
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x10048e00
mov ecx, dword [ebp - 0x190]
mov edx, dword [ebp - 0x18c]
mov eax, 4
mov word [ebx + 0x18], ax
mov dword [ebx], ecx
mov dword [ebx + 4], edx
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x3c]
mov edi, dword [eax + ecx*4]
cmp dword [edi], 0
je 0x100495b0
test byte [ebx + 0x18], 0x12
jne 0x1004a3d6
movzx ebx, byte [ebp - 0x91]
mov esi, dword [ebp - 0x84]
call fcn.10039160
test eax, eax
jne 0x1004b101
mov ebx, esi
mov ecx, dword [ebp - 0x88]
cmp dword [ecx + 0xc], 0
mov eax, dword [edi + 0x48]
setne dl
mov byte [eax], dl
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
push ecx
push edx
lea edx, [ebp - 0xf0]
mov ecx, edi
call fcn.1003c230
mov ecx, dword [edi + 0x48]
add esp, 8
mov dword [ebp - 0x8c], eax
mov byte [ecx], 0
test eax, eax
jne case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov al, byte [ecx]
cmp al, 0x32
jne 0x1004a42a
mov eax, dword [ebp - 0xf0]
neg eax
jmp 0x1004a435
cmp al, 0x78
mov eax, dword [ebp - 0xf0]
jne 0x1004a43b
inc eax
mov dword [ebp - 0xf0], eax
test eax, eax
jle 0x100495b0
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x100495b0
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 4]
mov esi, dword [ebx + 0x10]
lea edi, [ebp - 0x128]
mov dword [ebp - 0xac], eax
call fcn.1002e7b0
mov dword [ebp - 0x98], eax
cmp eax, dword [ebx + 0x14]
jge 0x100495b0
mov edi, edi
cmp dword [ebp - 0xac], 0
jle 0x100495b0
mov eax, dword [ebx + 0x10]
mov esi, dword [ebp - 0x98]
lea esi, [esi + eax]
lea edi, [ebp - 0x128]
call fcn.1002e7b0
add dword [ebp - 0x98], eax
cmp dword [ebp - 0x128], 0
je 0x1004a4c9
mov eax, dword [ebx + 0x14]
dec dword [ebp - 0xac]
cmp dword [ebp - 0x98], eax
jl 0x1004a480
jmp 0x100495b0
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp 0x100495b0
mov ecx, dword [ebp - 0x9c]
cmp dword [ecx + 0x4c], 1
jle 0x1004a4f9
mov dword [ebp - 0x8c], 6
jmp case.0x10046f9b.47
mov ecx, dword [ecx + 4]
lea eax, [ebp - 0x168]
push eax
mov eax, dword [ebp - 0x88]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push edx
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 4]
push edx
call fcn.10035210
mov ecx, dword [ebp - 0x168]
mov esi, eax
add ebx, 0x40
mov eax, 4
mov word [ebx + 0x18], ax
mov eax, ecx
cdq
add esp, 0xc
mov dword [ebx], eax
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x84], ebx
mov dword [ebx + 4], edx
test esi, esi
jne case.0x10046f9b.47
test ecx, ecx
je case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
mov esi, dword [ebp - 0x9c]
mov esi, dword [esi + 4]
mov edi, dword [edx + 4]
lea eax, [eax + eax*2]
lea esi, [esi + eax*8]
mov edx, ecx
call fcn.10040080
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0x9c]
push ecx
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx*8 + 4]
call fcn.10035180
add esp, 4
mov dword [ebp - 0x8c], eax
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x9c]
mov edx, dword [edx + 4]
lea eax, [eax + eax*2]
lea esi, [edx + eax*8]
xor eax, eax
cmp cl, 0x64
mov ecx, dword [esi + 4]
setne al
dec eax
and eax, 3
add eax, 2
push eax
lea eax, [ebp - 0x16c]
push eax
push ecx
call fcn.10034db0
add ebx, 0x40
add esp, 0xc
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x84], ebx
test eax, eax
jne 0x10049eef
mov eax, dword [ebp - 0x16c]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov edx, 4
mov word [ebx + 0x18], dx
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x9c]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*2]
lea ecx, [ecx + edx*8]
mov edx, dword [ecx + 0x14]
test byte [edx + 0x7a], 1
je case.0x10046f9b.47
mov edx, str.sqlite_temp_master
cmp eax, 1
je 0x1004a64f
mov edx, str.sqlite_master
mov esi, dword [ebp - 0x90]
mov edi, dword [ebp - 0x9c]
add esi, 0x230
mov dword [ebp - 0x184], esi
mov esi, dword [ebp - 0x88]
mov esi, dword [esi + 0xc]
push esi
push edx
mov dword [ebp - 0x188], edi
mov ecx, dword [ecx]
push ecx
push eax
push str.SELECT_name__rootpage__sql___d_FROM__q._s_WHERE__s
call fcn.10046b10
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1004b107
mov eax, edi
call fcn.1002e580
push 0
lea edx, [ebp - 0x188]
push edx
push fcn.1002bec0
push esi
push edi
mov byte [edi + 0x44], 1
call fcn.100386f0
add esp, 0x14
push esi
mov dword [ebp - 0x8c], eax
call fcn.1009cc76
add esp, 4
mov eax, edi
mov byte [edi + 0x44], 0
call fcn.1002e550
cmp dword [ebp - 0x8c], 7
jne case.0x10046f9b.47
mov eax, 1
add dword [0x100f0580], eax
mov dword [0x100f0574], eax
jmp 0x1004b107
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 4]
mov esi, dword [ebp - 0x9c]
call fcn.10044cd0
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x9c]
mov eax, dword [eax + 4]
push ecx
push edx
call fcn.1003e7b0
add esp, 8
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x9c]
mov eax, dword [eax + 4]
push ecx
push edx
call fcn.1003dc70
add esp, 8
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x9c]
push ecx
push edx
mov edx, dword [eax + 4]
call fcn.1004ca60
add esp, 8
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x90]
xor esi, esi
cmp ebx, dword [ecx + 0x28]
jb 0x1004a795
mov eax, ebx
lea ecx, [ecx]
test byte [eax + 0x18], 4
je 0x1004a795
inc esi
mov edx, esi
shl edx, 6
mov eax, ebx
sub eax, edx
cmp eax, dword [ecx + 0x28]
jae 0x1004a780
lea eax, [esi*4 + 4]
test eax, eax
jle 0x1004b107
push eax
call fcn.1002da00
mov edi, eax
add esp, 4
test edi, edi
je 0x1004b107
xor eax, eax
test esi, esi
jle 0x1004a7cd
lea ecx, [ecx]
mov ecx, dword [ebx]
mov dword [edi + eax*4], ecx
inc eax
sub ebx, 0x40
cmp eax, esi
jl 0x1004a7c0
lea edx, [ebp - 0x84]
mov dword [edi + eax*4], 0
push edx
mov eax, esi
call fcn.10046be0
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x84]
add esp, 4
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*8 + 4]
push esi
add ebx, 0x40
push edi
mov dword [ebp - 0x84], ebx
call fcn.10035ff0
add esp, 8
test eax, eax
je 0x1004a84d
cmp byte [eax], 0
je 0x1004a844
mov dword [ebx + 0x10], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1004a826
sub eax, edx
mov dword [ebx + 0x14], eax
mov ecx, 0x62
mov word [ebx + 0x18], cx
mov dword [ebx + 0x1c], 0
jmp 0x1004a864
push eax
call fcn.1009cc76
add esp, 4
mov dword [ebx + 0x10], 0x100d6fc8
mov edx, 0xa2
mov dword [ebx + 0x14], 2
mov word [ebx + 0x18], dx
movzx eax, byte [ebp - 0x91]
mov ecx, ebx
mov byte [ebx + 0x1b], 1
call fcn.10038f60
push edi
call fcn.1009cc76
add esp, 4
jmp 0x1004ae44
mov eax, ebx
call fcn.10039400
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
mov edi, dword [ebp - 0x90]
push eax
push ecx
add edi, 0x64
call fcn.10054080
add esp, 8
sub ebx, 0x40
mov dword [ebp - 0x84], ebx
jmp case.0x10046f9b.47
mov esi, dword [ebp - 0x9c]
test byte [esi + 8], 4
jne 0x1004b0ba
mov esi, dword [ebp - 0x90]
add esi, 0x64
lea edx, [ebp - 0x180]
call fcn.10054130
cmp eax, 0x65
jne 0x1004a8ef
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x17c]
add ebx, 0x40
mov dword [ebx], eax
mov edx, 4
mov dword [ebx + 4], ecx
mov dword [ebp - 0x84], ebx
mov word [ebx + 0x18], dx
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x90]
mov esi, dword [ecx + 0x70]
lea eax, [esi + 1]
mov dword [ecx + 0x70], eax
cmp esi, dword [ecx + 0x74]
jl 0x1004a949
mov dword [ecx + 0x74], eax
lea edi, [ecx + 0x78]
lea ecx, [esi + esi*2 + 3]
add ecx, ecx
add ecx, ecx
add ecx, ecx
call fcn.1002dac0
cmp dword [edi], 0
je 0x1004b107
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx + 0x78]
lea eax, [esi + esi*2]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0x9c]
mov esi, dword [edx + 0x20]
mov dword [eax], esi
mov edx, dword [edx + 0x24]
mov dword [eax + 4], edx
mov edx, dword [ecx + 0x23c]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0x64]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x68]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 0x6c]
mov dword [eax + 0x14], edx
xor eax, eax
mov dword [ecx + 0x64], eax
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], eax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x90]
dec dword [eax + 0x70]
mov ecx, dword [eax + 0x70]
mov edx, dword [eax + 0x78]
lea ecx, [ecx + ecx*2]
lea esi, [edx + ecx*8]
mov edx, dword [esi]
mov ecx, dword [ebp - 0x9c]
mov dword [ecx + 0x20], edx
mov edx, dword [esi + 4]
mov dword [ecx + 0x24], edx
mov ecx, dword [esi + 8]
lea edi, [eax + 0x64]
mov dword [eax + 0x23c], ecx
call fcn.10054180
mov edx, dword [esi + 0xc]
mov dword [edi], edx
mov eax, dword [esi + 0x10]
mov dword [edi + 4], eax
mov ecx, dword [esi + 0x14]
mov dword [edi + 8], ecx
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x90]
push ebx
mov ebx, dword [edx + 4]
shl ebx, 6
add ebx, dword [eax + 0x58]
call fcn.10039710
mov ecx, dword [ebp - 0x88]
sub dword [ebp - 0x84], 0x40
add esp, 4
cmp dword [ecx + 8], 0
mov dword [ebp - 0x8c], eax
jne 0x1004ae44
mov ebx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x88]
mov esi, dword [edx + 4]
mov eax, dword [ebp - 0x90]
add ebx, 0x40
shl esi, 6
add esi, dword [eax + 0x58]
mov ecx, 8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebx + 0x18]
mov dword [ebp - 0x84], ebx
mov dword [ebx + 0x1c], 0
test al, 0x12
je case.0x10046f9b.47
and eax, 0xfd3f
or eax, 0x100
mov word [ebx + 0x18], ax
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov esi, dword [ecx + 4]
mov edx, dword [ebp - 0x90]
shl esi, 6
add esi, dword [edx + 0x58]
mov eax, esi
call fcn.10039400
mov eax, ebx
call fcn.10039400
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
cmp dword [esi + 4], eax
jg case.0x10046f9b.47
jl 0x1004aaaa
cmp dword [esi], ecx
jae case.0x10046f9b.47
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + 4]
shl ecx, 6
add ecx, dword [edx + 0x58]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx + 0x58]
shl eax, 6
cmp dword [eax + ecx + 4], 0
jl case.0x10046f9b.47
jg 0x1004ab03
cmp dword [eax + ecx], 0
jbe case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx + 0x58]
shl eax, 6
cmp dword [eax + ecx + 4], 0
jg case.0x10046f9b.47
jl 0x1004ab44
cmp dword [eax + ecx], 0
jae case.0x10046f9b.47
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx + 0x58]
shl eax, 6
mov edx, dword [eax + ecx]
or edx, dword [eax + ecx + 4]
jne case.0x10046f9b.47
mov eax, dword [ebp - 0x88]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0xa0], eax
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x90]
shl eax, 6
add eax, dword [edx + 0x58]
call fcn.10039530
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 4]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x90]
shl eax, 6
add eax, dword [ecx + 0x58]
call fcn.100395b0
add esp, 8
jmp case.0x10046f9b.47
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x58]
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
shl edx, 6
add edx, eax
shl ebx, 6
push edx
add ebx, eax
call fcn.10039710
add esp, 4
mov dword [ebp - 0x8c], eax
jmp 0x1004ae44
mov ecx, dword [ebp - 0x88]
mov esi, dword [ecx + 8]
mov edx, dword [ebp - 0x90]
mov edi, dword [edx + 0x30]
mov eax, esi
shl eax, 6
sub ebx, eax
xor edx, edx
add ebx, 0x40
cmp esi, edx
jle 0x1004ac4a
lea esp, [esp]
mov ecx, ebx
mov dword [edi + edx*4], ebx
call fcn.10046bb0
inc edx
add ebx, 0x40
cmp edx, esi
jl 0x1004ac30
mov ecx, dword [ebp - 0x88]
xor edx, edx
mov eax, dword [ecx + 0xc]
mov ebx, dword [ebp - 0x90]
mov dword [ebp - 0x80], eax
mov eax, dword [ecx + 4]
shl eax, 6
add eax, dword [ebx + 0x58]
mov dword [ebp - 0x38], eax
inc dword [eax + 0x14]
mov eax, 1
mov word [ebp - 0x60], ax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x5c], edx
mov byte [ebp - 0x34], 0
mov dword [ebp - 0x30], edx
cmp byte [eax + 3], 0
je 0x1004ac8a
mov ecx, dword [ecx - 8]
mov dword [ebp - 0x30], ecx
mov eax, dword [eax + 0x14]
push edi
lea edx, [ebp - 0x80]
push esi
push edx
call eax
lea ecx, [ebp - 0x84]
add esp, 0xc
push ecx
mov eax, esi
call fcn.10046be0
add esp, 4
cmp byte [ebp - 0x34], 0
je 0x1004acd9
push 0
push ecx
lea edx, [ebp - 0x78]
push edx
call fcn.1002cca0
add esp, 8
push eax
mov eax, ebx
add eax, 0x230
push eax
call fcn.1002dc00
add esp, 0xc
mov dword [ebp - 0x8c], 1
lea ecx, [ebp - 0x78]
push ecx
call fcn.10039280
add esp, 4
jmp 0x1004ae44
mov eax, dword [ebp - 0x88]
mov ebx, dword [eax + 4]
mov edx, dword [ebp - 0x90]
mov ecx, dword [eax + 0xc]
shl ebx, 6
add ebx, dword [edx + 0x58]
call fcn.100391e0
mov dword [ebp - 0x8c], eax
cmp eax, 1
jne 0x1004ae44
push 0
push ecx
push ebx
call fcn.1002cca0
add esp, 8
push eax
mov eax, dword [ebp - 0x90]
add eax, 0x230
push eax
call fcn.1002dc00
add esp, 0xc
jmp 0x1004ae44
mov esi, dword [ebp - 0x9c]
mov eax, esi
call fcn.1002e580
test eax, eax
jne 0x1004ad78
mov ecx, dword [ebp - 0x90]
add ecx, 0x230
push esi
push ecx
call fcn.1005fca0
mov dword [ebp - 0x8c], eax
add esp, 8
mov eax, esi
call fcn.1002e550
test eax, eax
je case.0x10046f9b.47
mov dword [ebp - 0x8c], 0x15
jmp 0x10048e00
mov edx, dword [ebp - 0x88]
cmp dword [edx + 4], 0
jne 0x1004ada3
mov eax, dword [ebp - 0x9c]
call fcn.1003c320
jmp case.0x10046f9b.47
mov eax, dword [ebp - 0x90]
mov byte [eax + 0x238], 1
jmp case.0x10046f9b.47
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 4]
test eax, eax
sets cl
test cl, cl
je 0x1004adce
or edx, 0xffffffff
sub edx, eax
mov eax, edx
mov edx, dword [ebp - 0x88]
mov esi, dword [edx + 8]
mov edx, dword [ebp - 0x9c]
mov edx, dword [edx + 4]
test cl, cl
setne bl
lea eax, [eax + eax*2]
mov edi, dword [edx + eax*8 + 4]
inc bl
push esi
mov byte [ebp - 0x10c], bl
call fcn.1002eb40
add esp, 4
test eax, eax
jne 0x1004ae14
mov eax, dword [ebp - 0x10c]
mov ebx, esi
push eax
mov esi, edi
call fcn.1002ebf0
add esp, 4
mov dword [ebp - 0x8c], eax
cmp eax, 6
jne 0x1004ae44
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x90]
push 0
push edx
add eax, 0x230
push str.database_table_is_locked:
push eax
call fcn.1002dc00
add esp, 0x10
mov ebx, dword [ebp - 0x84]
inc dword [ebp - 0xa0]
cmp dword [ebp - 0x8c], 0
jne 0x1004b15f
mov edi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x9c]
jmp 0x10046ef0
mov esi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0xa0]
mov dword [esi + 0x2c], ebx
mov ecx, dword [eax + 4]
mov dword [esi + 0x80], ecx
mov dword [esi + 0x7c], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x88], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1004aeb7
push 0
push eax
lea edx, [esi + 0x230]
push edx
call fcn.1002dc00
add esp, 0xc
mov eax, esi
call fcn.1003b440
cmp eax, 5
jne 0x1004aeda
mov dword [esi + 0x80], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x80]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 4]
mov edi, dword [ebp - 0x90]
mov esi, dword [edi + 0x28]
shl ecx, 6
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x10c], eax
cmp esi, eax
jae 0x1004af45
mov edi, edi
mov edx, 0x100
test word [esi + 0x18], dx
je 0x1004af3e
call fcn.10039020
test eax, eax
jne 0x1004b107
mov eax, dword [ebp - 0x10c]
add esi, 0x40
cmp esi, eax
jb 0x1004af20
mov eax, dword [edi + 0x60]
add eax, 2
or eax, 1
mov dword [edi + 0x60], eax
cmp esi, ebx
ja 0x1004af6a
mov eax, esi
call fcn.100390e0
mov ecx, esi
call fcn.10046bb0
add esi, 0x40
cmp esi, ebx
jbe 0x1004af55
inc dword [edi + 0x5c]
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x88]
inc eax
mov byte [edi + 0x234], 1
mov edx, dword [ecx + 4]
mov dword [edi + 0x7c], eax
mov dword [edi + 0x22c], edx
mov eax, 0x64
mov dword [edi + 0x2c], ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x8c], 0x14
jmp 0x10048e00
cmp dword [edi + 8], 0
je 0x1004afda
call fcn.1002b570
mov byte [esi + 0x10], 1
mov eax, 0x65
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
mov cl, byte [ebp - 0xad]
mov edi, dword [ebp - 0x90]
mov eax, edi
mov byte [esi + 0x10], cl
call fcn.1003b440
cmp eax, 5
jne 0x1004afc4
mov edx, dword [ebp - 0xa0]
mov al, 1
sub al, byte [ebp - 0xad]
mov dword [edi + 0x2c], ebx
mov dword [edi + 0x7c], edx
mov byte [esi + 0x10], al
mov dword [edi + 0x80], 5
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0x7c], ecx
mov dword [eax + 0x80], 5
mov dword [eax + 0x2c], ebx
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0xa0]
xor eax, eax
mov dword [ecx + 0x7c], edx
mov dword [ecx + 0x80], 5
cmp dword [ebx + 8], eax
setle al
inc eax
shl eax, 6
add eax, dword [ebp - 0x84]
mov dword [ecx + 0x2c], eax
mov eax, 5
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x8c], 0xb
jmp 0x10048e00
mov dword [ebp - 0x8c], 0xd
jmp 0x10048e00
mov eax, dword [esi + 0x30]
and dword [esi + 8], 0xfffffffb
mov edx, dword [ebp - 0x90]
sub eax, 0xf03b7906
neg eax
sbb eax, eax
and eax, 0xc
add eax, 9
mov dword [ebp - 0x8c], eax
mov dword [edx + 0x80], eax
cmp eax, 0x65
ja 0x1004b0f4
call fcn.1002b5f0
add edx, 0x230
jmp 0x1004b14a
mov eax, str.unknown_error
add edx, 0x230
jmp 0x1004b14a
mov ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x90]
push 0
add ecx, 0x230
push str.out_of_memory
push ecx
call fcn.1002dc00
add esp, 0xc
mov dword [ebp - 0x8c], 7
jmp 0x1004b15f
cmp dword [ebp - 0x8c], 0x65
ja 0x1004b145
mov eax, dword [ebp - 0x8c]
call fcn.1002b5f0
jmp 0x1004b14a
mov eax, str.unknown_error
push 0
push eax
push edx
call fcn.1002dc00
add esp, 0xc
cmp dword [ebp - 0x8c], 0
je 0x1004b178
mov edx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x90]
mov dword [edi + 0x80], edx
mov esi, 1
jmp 0x1004b183
mov edi, dword [ebp - 0x90]
mov esi, 0x65
mov eax, edi
call fcn.1003b440
mov ecx, dword [ebp - 4]
mov dword [edi + 0x2c], ebx
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.1009c0cb
mov esp, ebp
pop ebp
ret