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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2bc
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x14]
mov al, byte [edx + 0x59]
mov byte [esp + 0x34], al
lea eax, [edi + 0x114]
xor ecx, ecx
push eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x11c], eax
call fcn.00435200
mov eax, dword [edi + 0x74]
add esp, 4
cmp eax, 7
je 0x4244fd
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [edi + 0x74], ecx
mov dword [edi + 0xf8], ecx
cmp dword [eax + 0xd8], ecx
mov dword [eax + 0x144], ecx
jne 0x4244d4
mov ecx, dword [edi + 0x70]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0x1e]
test al, al
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x58]
jne 0x4244fd
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + 0x14]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*4]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xe8]
test eax, eax
mov dword [esp + 0x20], eax
je 0x420c36
mov eax, dword [edx + 0xf0]
cmp eax, dword [esp + 0x7c]
jne 0x420c32
mov ecx, edx
mov edx, dword [ecx + 0xec]
push edx
call dword [esp + 0x24]
add esp, 4
test eax, eax
jne 0x424327
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], eax
inc dword [esp + 0x7c]
movzx eax, byte [ebx]
mov al, byte [eax + 0x464748]
test al, 2
mov byte [esp + 0x17], al
je 0x420c6e
mov eax, dword [ebx + 8]
mov edx, dword [edi + 0x4c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
push eax
mov dword [esp + 0x1c], eax
call fcn.0041f760
mov eax, dword [esp + 0x1c]
add esp, 4
mov word [eax + 0x1c], 1
mov ecx, eax
jmp 0x420cec
test al, 4
je 0x420cc2
mov eax, dword [ebx + 4]
mov esi, dword [edi + 0x4c]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [esp + 0x17]
test al, 8
mov dword [esp + 0x58], esi
je 0x420cb0
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea edx, [eax + edx*8]
mov dword [esp + 0x38], edx
test byte [esp + 0x17], 0x20
je 0x420cec
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x18], ecx
jmp 0x420cec
test al, 0x10
je 0x420cf0
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea eax, [eax + edx*8]
jmp 0x420ce8
test al, 8
je 0x420cd8
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea edx, [eax + edx*8]
mov dword [esp + 0x38], edx
jmp 0x420cec
test al, 0x10
je 0x420cf0
mov eax, dword [ebx + 0xc]
mov edx, dword [edi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x10]
mov al, byte [ebx]
mov byte [esp + 0x17], al
movzx eax, al
mov dword [esp + 0x24], eax
dec eax
cmp eax, 0x8d
ja case.0x420d10.12
movzx eax, byte [eax + 0x4246ec]
jmp dword [eax*4 + 0x424554]
mov eax, dword [edx + 0xd8]
test eax, eax
jne 0x4244d4
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi + 0xe8]
inc ecx
mov dword [edi + edx*4 + 0x84], ecx
inc dword [edi + 0xe8]
mov eax, dword [ebx + 8]
dec eax
mov dword [esp + 0x1c], eax
jmp case.0x420d10.12
mov ecx, dword [edi + 0xe8]
dec ecx
mov dword [edi + 0xe8], ecx
mov eax, ecx
mov edi, dword [edi + eax*4 + 0x84]
dec edi
mov dword [esp + 0x1c], edi
jmp case.0x420d10.12
mov word [ecx + 0x1c], 4
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x420d10.12
mov word [ecx + 0x1c], 4
mov edx, dword [ebx + 0x10]
mov eax, dword [edx]
mov dword [ecx], eax
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
jmp case.0x420d10.12
mov word [ecx + 0x1c], 8
mov eax, dword [ebx + 0x10]
fld qword [eax]
fstp qword [ecx + 8]
jmp case.0x420d10.12
mov eax, dword [ebx + 0x10]
mov byte [ebx], 0x1b
lea esi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x420dc0
sub eax, esi
mov esi, eax
cmp byte [esp + 0x34], 1
mov dword [ebx + 4], esi
je 0x420e83
mov eax, dword [ebx + 0x10]
mov esi, dword [esp + 0x18]
push 0
push 1
push 0xffffffffffffffff
push eax
push esi
call fcn.0041fc60
movzx ecx, byte [esp + 0x48]
push ecx
push esi
call fcn.0041f450
add esp, 0x1c
test eax, eax
jne 0x4244fd
push esi
call fcn.0041ffd0
add esp, 4
test eax, eax
jne 0x4244fd
xor edx, edx
mov dx, word [esi + 0x1c]
mov dword [esi + 0x24], eax
and edx, 0xffbf
or edx, 0x80
mov word [esi + 0x1c], dx
cmp byte [ebx + 1], 0xff
jne 0x420e40
mov eax, dword [ebx + 0x10]
push eax
call fcn.00417f90
add esp, 4
mov edx, dword [esp + 0x10]
mov byte [ebx + 1], 0xff
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x10], ecx
mov esi, dword [esi + 0x18]
mov dword [ebx + 4], esi
cmp esi, dword [edx + 0x50]
jle case.0x420d10.12
mov ecx, dword [ebp + 8]
push 0
add ecx, 0xf4
push str.string_or_blob_too_big
push ecx
call fcn.00420730
mov edi, dword [ebp + 8]
mov dword [esp + 0x18], 0x12
jmp 0x424520
cmp esi, dword [edx + 0x50]
jg 0x420e5d
mov ecx, dword [esp + 0x18]
mov word [ecx + 0x1c], 0xa2
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x14], eax
mov edx, dword [ebx + 4]
mov al, byte [esp + 0x34]
mov dword [ecx + 0x18], edx
mov byte [ecx + 0x1f], al
jmp case.0x420d10.12
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
mov esi, dword [esp + 0x18]
push 0
push 0
push ecx
push edx
push esi
call fcn.0041fc60
mov al, byte [esp + 0x48]
add esp, 0x14
mov byte [esi + 0x1f], al
jmp case.0x420d10.12
mov ebx, dword [ebx + 4]
mov edi, dword [edi + 0x38]
dec ebx
lea esi, [ebx + ebx*4]
shl esi, 3
add edi, esi
push edi
call fcn.0041fb80
add esp, 4
test eax, eax
jne 0x420e5d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
mov eax, dword [esp + 0x18]
push 0x80
add edx, esi
push edx
push eax
call fcn.0041fbb0
add esp, 0xc
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x4c]
mov ebx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
lea edx, [ebx + ebx*4]
lea eax, [edi + edx*8]
mov edi, dword [eax + 0x24]
push esi
push eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x20], eax
mov dword [eax + 0x24], 0
call fcn.0041fc30
add esp, 8
mov dword [esi + 0x24], edi
jmp case.0x420d10.12
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x4c]
mov ebx, dword [ebx + 8]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
lea edx, [ebx + ebx*4]
push 0x100
lea esi, [eax + edx*8]
push ecx
push esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], esi
call fcn.0041fbb0
add esp, 0xc
test byte [esi + 0x1d], 1
je case.0x420d10.12
push esi
call fcn.00420030
add esp, 4
test eax, eax
jne 0x4244fd
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x4c]
mov ebx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea edx, [ebx + ebx*4]
push 0x100
lea eax, [edi + edx*8]
push ecx
push eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], eax
call fcn.0041fbb0
add esp, 0xc
jmp case.0x420d10.12
mov ecx, dword [esp + 0x38]
mov ax, word [esi + 0x1c]
mov dl, byte [ecx + 0x1c]
or dl, al
test dl, 1
je 0x420fe9
mov eax, dword [esp + 0x18]
push eax
call fcn.0041fa90
add esp, 4
jmp case.0x420d10.12
test ah, 8
je 0x420ff7
push esi
call fcn.0041f560
add esp, 4
test byte [esi + 0x1c], 0x12
jne 0x421014
movzx ecx, byte [esp + 0x34]
push ecx
push esi
call fcn.0041f610
add esp, 8
test eax, eax
jne 0x4244fd
mov ebx, dword [esp + 0x38]
test byte [ebx + 0x1d], 8
je 0x421027
push ebx
call fcn.0041f560
add esp, 4
test byte [ebx + 0x1c], 0x12
jne 0x421044
movzx edx, byte [esp + 0x34]
push edx
push ebx
call fcn.0041f610
add esp, 8
test eax, eax
jne 0x4244fd
mov edi, dword [ebx + 0x18]
mov eax, dword [esi + 0x18]
add eax, edi
cdq
mov edi, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x50]
mov ecx, edx
cdq
cmp ecx, edx
mov dword [esp + 0x1e8], edi
jg 0x420e5d
jl 0x421072
cmp edi, eax
ja 0x420e5d
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
xor ecx, ecx
mov cx, word [esi + 0x1c]
xor edx, edx
and ecx, 0xffe2
or ecx, 2
cmp esi, ebx
sete dl
add edi, 2
mov word [esi + 0x1c], cx
push edx
push edi
push esi
call fcn.0041f480
add esp, 0xc
test eax, eax
jne 0x4244fa
cmp esi, ebx
mov eax, esi
je 0x4210c7
mov ecx, dword [ebx + 0x18]
mov esi, dword [ebx + 0x14]
mov edi, dword [eax + 0x14]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x58]
mov ecx, dword [edx + 0x18]
mov esi, dword [edx + 0x14]
mov edx, dword [ebx + 0x18]
mov edi, dword [eax + 0x14]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1e8]
mov edx, dword [eax + 0x14]
mov byte [ecx + edx], 0
mov edx, dword [eax + 0x14]
mov byte [edx + ecx + 1], 0
or byte [eax + 0x1c], 0x20
mov dword [eax + 0x18], ecx
mov cl, byte [esp + 0x34]
mov byte [eax + 0x1f], cl
jmp case.0x420d10.12
mov edx, dword [esp + 0x38]
movzx edx, word [edx + 0x1c]
mov ax, word [esi + 0x1c]
mov dword [esp + 0x20], edx
movzx ecx, ax
movzx edx, dx
or ecx, edx
test cl, 1
mov dword [esp + 0x48], ecx
jne 0x4212e4
and al, byte [esp + 0x20]
test al, 4
je 0x4211ef
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
mov edi, dword [edx + 4]
mov edx, dword [esp + 0x24]
mov ecx, dword [esi]
mov esi, dword [esi + 4]
add edx, 0xffffffb2
cmp edx, 3
ja case.default.0x42115b
jmp dword [edx*4 + 0x42477c]
add eax, ecx
adc edi, esi
jmp 0x4211cf
sub eax, ecx
sbb edi, esi
jmp 0x4211cf
push esi
push ecx
push edi
push eax
call fcn.00415b40
jmp 0x4211cd
mov edx, ecx
or edx, esi
je 0x4212e4
mov edx, ecx
and edx, esi
cmp edx, 0xffffffff
jne 0x42119f
test eax, eax
jne 0x42119f
cmp edi, 0x80000000
jne 0x42119f
mov ecx, 1
xor esi, esi
push esi
push ecx
push edi
push eax
call fcn.00415bd0
jmp 0x4211cd
mov edx, ecx
or edx, esi
je 0x4212e4
mov edx, ecx
and edx, esi
cmp edx, 0xffffffff
jne 0x4211c4
mov ecx, 1
xor esi, esi
push esi
push ecx
push edi
push eax
call fcn.00453630
mov edi, edx
mov ecx, dword [esp + 0x18]
mov dword [ecx + 4], edi
mov dword [ecx], eax
xor eax, eax
mov ax, word [ecx + 0x1c]
and eax, 0xffe4
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x420d10.12
push esi
call fcn.0041f8f0
fstp qword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0041f8f0
movzx eax, byte [ebx]
add eax, 0xffffffb2
add esp, 8
cmp eax, 3
ja case.default.0x421211
jmp dword [eax*4 + 0x42478c]
fadd qword [esp + 0x28]
jmp 0x421291
fsub qword [esp + 0x28]
jmp 0x421291
fmul qword [esp + 0x28]
jmp 0x421291
fld qword [0x45a0b0]
fld qword [esp + 0x28]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4212e2
fdiv qword [esp + 0x28]
jmp 0x421291
fld qword [esp + 0x28]
call fcn.004534e4
mov esi, eax
mov edi, edx
call fcn.004534e4
mov ecx, esi
or ecx, edi
je 0x4212e4
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x421273
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00453630
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], edx
fild qword [esp + 0x190]
fstp qword [esp + 0x28]
sub esp, 8
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.0041bd50
add esp, 8
test eax, eax
jne 0x4212e4
mov eax, dword [esp + 0x18]
fld qword [esp + 0x28]
xor ecx, ecx
fstp qword [eax + 8]
mov cx, word [eax + 0x1c]
and ecx, 0xffe8
or ecx, 8
mov word [eax + 0x1c], cx
test byte [esp + 0x48], 8
jne case.0x420d10.12
push eax
call fcn.0041f980
add esp, 4
jmp case.0x420d10.12
fstp st(0)
mov edx, dword [esp + 0x18]
push edx
call fcn.0041fa90
add esp, 4
jmp case.0x420d10.12
mov edx, dword [edi + 0x24]
movzx esi, byte [ebx + 3]
mov eax, dword [ebx + 8]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x24], edx
lea eax, [eax + eax*4]
xor edx, edx
test esi, esi
lea ecx, [ecx + eax*8]
jle 0x421327
mov eax, dword [esp + 0x24]
mov dword [eax + edx*4], ecx
call fcn.004208a0
inc edx
add ecx, 0x28
cmp edx, esi
jl 0x421313
cmp byte [ebx + 1], 0xfb
jne 0x421344
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], 0
jmp 0x421357
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x19c], eax
mov edx, dword [eax]
mov dword [esp + 0x198], edx
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0x4c]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x1c], eax
xor ecx, ecx
lea eax, [esp + 0x1a4]
push eax
mov word [esp + 0x1c4], 1
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], ecx
call fcn.0041fc30
mov ecx, dword [esp + 0x1c4]
mov eax, dword [esp + 0x1a0]
and ecx, 0xffe1
or ecx, 1
mov word [esp + 0x1c4], cx
mov dword [esp + 0x1d4], 0
mov cl, byte [eax + 3]
add esp, 8
test cl, cl
je 0x4213d8
mov edx, dword [ebx - 4]
mov dword [esp + 0x1d0], edx
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x19c]
push esi
push edx
call dword [eax + 0x10]
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x1e]
add esp, 0xc
test cl, cl
jne 0x4243f7
mov eax, dword [esp + 0x19c]
test eax, eax
je 0x421421
mov ecx, dword [ebx + 4]
push ecx
push eax
call fcn.0041e150
mov edx, dword [esp + 0x1a4]
add esp, 8
mov dword [ebx + 0x10], edx
mov byte [ebx + 1], 0xf9
mov eax, dword [esp + 0x1cc]
test eax, eax
je 0x421459
lea eax, [esp + 0x1a0]
push 0
push eax
call fcn.00418280
add esp, 4
push eax
add edi, 0xf4
push edi
call fcn.00420730
mov ecx, dword [esp + 0x1d8]
add esp, 0xc
mov dword [esp + 0xc], ecx
movzx edx, byte [esp + 0x34]
push edx
lea eax, [esp + 0x1a4]
push eax
call fcn.0041f450
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x1a8]
push ecx
push esi
call fcn.0041fc30
push esi
call fcn.0041fb80
add esp, 0x14
test eax, eax
jne 0x420e5d
jmp case.0x420d10.12
mov edx, dword [esp + 0x38]
mov al, byte [edx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x4214b4
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041fa90
add esp, 4
jmp case.0x420d10.12
mov edx, dword [esp + 0x38]
push edx
call fcn.0041f850
push esi
mov edi, eax
mov dword [esp + 0x94], edx
call fcn.0041f850
mov ecx, eax
movzx eax, byte [ebx]
add esp, 8
sub eax, 0x4a
je 0x421516
dec eax
je 0x421509
mov edx, dword [esp + 0x8c]
dec eax
mov eax, edi
je 0x4214f9
call fcn.00453600
mov edi, eax
mov dword [esp + 0x8c], edx
jmp 0x421528
call fcn.00415d00
mov edi, eax
mov dword [esp + 0x8c], edx
jmp 0x421528
mov eax, dword [esp + 0x8c]
or edi, ecx
or eax, edx
jmp 0x421521
mov eax, dword [esp + 0x8c]
and edi, ecx
and eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x8c]
xor edx, edx
mov dx, word [eax + 0x1c]
mov dword [eax], edi
mov dword [eax + 4], ecx
and edx, 0xffe4
or edx, 4
mov word [eax + 0x1c], dx
jmp case.0x420d10.12
push esi
call fcn.0041f9b0
mov eax, dword [ebx + 8]
mov ecx, dword [esi]
cdq
add esp, 4
add ecx, eax
mov eax, dword [esi + 4]
adc eax, edx
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x420d10.12
call fcn.004209d0
test byte [esi + 0x1c], 8
je 0x421584
push esi
call fcn.0041f980
add esp, 4
xor eax, eax
mov ax, word [esi + 0x1c]
test al, 0xc
mov dword [esp + 0x20], eax
jne 0x42159f
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
test al, 4
je 0x4215d3
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4215c0
mov edi, dword [esi]
mov edx, dword [esi + 4]
mov eax, 1
xor ecx, ecx
add eax, edi
adc ecx, edx
mov edi, eax
mov edx, ecx
jmp 0x421630
mov edi, dword [esi]
mov edx, dword [esi + 4]
xor eax, eax
xor ecx, ecx
add eax, edi
adc ecx, edx
mov edi, eax
mov edx, ecx
jmp 0x421630
fld qword [esi + 8]
call fcn.004534e4
mov edi, eax
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], edx
fild qword [esp + 0xd0]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x421610
add edi, 1
adc edx, 0
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], edx
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x421630
fild qword [esp + 0xd0]
fld qword [esi + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x421630
add edi, 1
adc edx, 0
mov eax, dword [esp + 0x20]
mov dword [esi], edi
mov dword [esi + 4], edx
and eax, 0xffe4
or eax, 4
mov word [esi + 0x1c], ax
jmp case.0x420d10.12
call fcn.004209d0
test byte [esi + 0x1c], 8
je 0x42165e
push esi
call fcn.0041f980
add esp, 4
mov ax, word [esi + 0x1c]
test al, 4
jne 0x421639
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x42440c
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
test byte [esi + 0x1c], 4
je case.0x420d10.12
push esi
call fcn.0041f9e0
add esp, 4
jmp case.0x420d10.12
xor ecx, ecx
mov cx, word [esi + 0x1c]
test cl, 1
jne case.0x420d10.12
xor eax, eax
mov al, cl
shr al, 3
and eax, 2
or eax, ecx
test al, 2
mov word [esi + 0x1c], ax
jne 0x4216c9
test al, 0xc
je 0x4216c9
movzx eax, byte [esp + 0x34]
push eax
push esi
call fcn.0041f610
add esp, 8
and byte [esi + 0x1c], 0xf3
mov ax, word [esi + 0x1c]
test ah, 8
je 0x4216ec
push esi
call fcn.0041f560
add esp, 4
and byte [esi + 0x1c], 0xe3
mov dword [esp + 0xc], eax
jmp case.0x420d10.12
and byte [esi + 0x1c], 0xe3
mov dword [esp + 0xc], 0
jmp case.0x420d10.12
mov ax, word [esi + 0x1c]
test al, 1
jne case.0x420d10.12
test al, 0x10
jne 0x421728
test al, 2
jne 0x421724
test al, 0xc
je 0x421724
movzx ecx, byte [esp + 0x34]
push ecx
push esi
call fcn.0041f610
add esp, 8
and byte [esi + 0x1c], 0xf3
xor edx, edx
mov dx, word [esi + 0x1c]
and edx, 0xfff0
or edx, 0x10
mov word [esi + 0x1c], dx
jmp case.0x420d10.12
test byte [esi + 0x1c], 0xd
jne case.0x420d10.12
push esi
call fcn.0041fa10
add esp, 4
jmp case.0x420d10.12
test byte [esi + 0x1c], 1
jne case.0x420d10.12
push esi
call fcn.0041f9b0
add esp, 4
jmp case.0x420d10.12
test byte [esi + 0x1c], 1
jne case.0x420d10.12
push esi
call fcn.0041f9e0
add esp, 4
jmp case.0x420d10.12
mov eax, dword [esp + 0x50]
mov cl, byte [eax + 0x1c]
or cl, byte [esi + 0x1c]
test cl, 1
je 0x421805
mov al, byte [ebx + 3]
test al, 0x10
je 0x421879
xor eax, eax
mov ecx, 4
mov word [esp + 0x2bc], cx
mov ax, word [esi + 0x1c]
mov word [esp + 0x294], cx
lea esi, [esp + 0x2a0]
mov dword [esp + 0x58], esi
not eax
and eax, 1
cdq
mov dword [esp + 0x2a0], eax
xor eax, eax
mov dword [esp + 0x2a4], edx
mov edx, dword [esp + 0x50]
mov ax, word [edx + 0x1c]
not eax
and eax, 1
cdq
mov dword [esp + 0x278], eax
lea eax, [esp + 0x278]
mov dword [esp + 0x27c], edx
mov dword [esp + 0x50], eax
mov al, byte [ebx + 3]
and al, 0x67
mov byte [esp + 0x17], al
je 0x421831
mov edx, dword [esp + 0x34]
push edx
mov ecx, esi
call fcn.00420a60
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
push eax
mov al, byte [esp + 0x1f]
call fcn.00420a60
add esp, 8
test byte [esi + 0x1d], 8
je 0x421840
push esi
call fcn.0041f560
add esp, 4
mov ecx, dword [esp + 0x50]
test byte [ecx + 0x1d], 8
je 0x421855
mov edx, ecx
push edx
call fcn.0041f560
add esp, 4
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x50]
push eax
push esi
push ecx
call fcn.00420380
movzx ecx, byte [ebx]
add ecx, 0xffffffbd
add esp, 0xc
cmp ecx, 4
ja case.default.0x421872
jmp dword [ecx*4 + 0x42479c]
test al, al
jns 0x4218a5
mov ebx, dword [ebx + 8]
mov edx, dword [edi + 0x4c]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*8]
xor ecx, ecx
mov cx, word [eax + 0x1c]
mov dword [esp + 0x18], eax
and ecx, 0xffe1
or ecx, 1
mov word [eax + 0x1c], cx
jmp case.0x420d10.12
test al, 8
je case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
xor edx, edx
test eax, eax
sete dl
mov eax, edx
jmp 0x4218f6
xor ecx, ecx
test eax, eax
setne cl
jmp 0x4218f4
xor edx, edx
test eax, eax
setl dl
mov eax, edx
jmp 0x4218f6
xor ecx, ecx
test eax, eax
setle cl
jmp 0x4218f4
xor edx, edx
test eax, eax
setg dl
mov eax, edx
jmp 0x4218f6
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
mov cl, byte [ebx + 3]
test cl, cl
jns 0x422a28
mov ebx, dword [ebx + 8]
mov ecx, dword [edi + 0x4c]
lea edx, [ebx + ebx*4]
lea ecx, [ecx + edx*8]
xor edx, edx
mov dx, word [ecx + 0x1c]
mov dword [esp + 0x18], ecx
and edx, 0xffe4
or edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x420d10.12
test byte [esi + 0x1c], 1
je 0x42193c
mov esi, 2
jmp 0x421952
push esi
call fcn.0041f850
add esp, 4
or eax, edx
je 0x421950
mov esi, 1
jmp 0x421952
xor esi, esi
mov eax, dword [esp + 0x38]
test byte [eax + 0x1c], 1
je 0x421963
mov eax, 2
jmp 0x421979
push eax
call fcn.0041f850
add esp, 4
or eax, edx
je 0x421977
mov eax, 1
jmp 0x421979
xor eax, eax
cmp byte [ebx], 0x3d
jne 0x42198b
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x45a9e0]
jmp 0x421996
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x45a9ec]
cmp eax, 2
jne 0x423850
mov eax, dword [esp + 0x18]
xor edx, edx
mov dx, word [eax + 0x1c]
and edx, 0xffe1
or edx, 1
mov word [eax + 0x1c], dx
jmp case.0x420d10.12
test byte [esi + 0x1c], 1
jne case.0x420d10.12
push esi
call fcn.0041f9b0
mov ecx, dword [esi]
mov eax, dword [esi + 4]
add esp, 4
or ecx, eax
jne 0x4219e7
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x420d10.12
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x420d10.12
test byte [esi + 0x1c], 1
jne case.0x420d10.12
push esi
call fcn.0041f9b0
mov edx, dword [esi]
mov eax, dword [esi + 4]
not edx
not eax
add esp, 4
mov dword [esi], edx
mov dword [esi + 4], eax
jmp case.0x420d10.12
test byte [esi + 0x1c], 1
je 0x421a1e
mov eax, dword [ebx + 0xc]
jmp 0x421a4d
push esi
call fcn.0041f8f0
fld qword [0x45a0b0]
fucompp
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x421a3d
mov eax, 1
jmp 0x421a3f
xor eax, eax
cmp byte [ebx], 0x49
jne 0x421a4d
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [ebx + 0xc]
mov edi, edi
test byte [esi + 0x1c], 1
jne 0x421a8f
add esi, 0x28
dec eax
test eax, eax
jg 0x421a60
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov edi, dword [ebp + 8]
inc ecx
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x420bcc
jmp 0x424523
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp 0x421a6e
test byte [esi + 0x1c], 1
jne case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov esi, dword [edi + 0x4c]
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
xor esi, esi
mov dword [esp + 0x28], edx
xor edx, edx
mov word [esp + 0x15c], dx
mov dword [esp + 0x150], edx
mov dword [esp + 0x164], edx
mov si, word [eax + 0x1c]
mov dword [esp + 0x24], eax
and esi, 0xffe1
or esi, 1
mov word [eax + 0x1c], si
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
cmp dword [esi], edx
je 0x421b98
push esi
call fcn.0041e1b0
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov ecx, dword [esi]
mov dword [esp + 0x54], ecx
mov cl, byte [esi + 0x1c]
test cl, cl
mov dword [esp + 0x3c], eax
je 0x421b32
mov dword [esp + 0x68], eax
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x30], ecx
jmp 0x421bb4
mov edx, dword [esi + 0x68]
cmp edx, dword [edi + 0x54]
jne 0x421b51
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x68], eax
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x30], ecx
jmp 0x421bb4
mov al, byte [esi + 0x22]
test al, al
mov eax, dword [esp + 0x54]
je 0x421b81
lea edx, [esp + 0x1f0]
push edx
push eax
call fcn.0042bef0
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0x50]
add esp, 8
mov dword [esp + 0x30], ecx
jmp 0x421bb4
lea edx, [esp + 0x68]
push edx
push eax
call fcn.0042bf80
mov ecx, dword [esi + 0x50]
add esp, 8
mov dword [esp + 0x30], ecx
jmp 0x421bb4
mov eax, dword [esi + 0x34]
mov dword [esp + 0x68], eax
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x50]
mov dword [esp + 0x3c], ecx
mov dword [esi + 0x68], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x68]
test eax, eax
je case.0x420d10.12
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x50]
ja 0x420e5d
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x68]
cmp edx, dword [ecx + 0x54]
mov eax, dword [esi + 0x70]
mov dword [esp + 0x5c], eax
jne 0x421beb
mov eax, dword [esi + 0x74]
mov dword [esp + 0x4c], eax
jmp 0x421dc1
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x3c]
test edi, edi
lea eax, [eax + edx*4]
mov dword [esi + 0x74], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x68]
mov dword [esi + 0x6c], eax
mov ecx, dword [ecx + 0x54]
mov dword [esi + 0x68], ecx
jne 0x421c5f
mov al, byte [esi + 0x22]
test al, al
je 0x421c29
mov eax, dword [esp + 0x54]
lea edx, [esp + 0x98]
push edx
push eax
call fcn.004278e0
jmp 0x421c3b
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x98]
push ecx
push edx
call fcn.00427950
mov ecx, dword [esp + 0x70]
mov edi, eax
mov eax, dword [esp + 0xa0]
add esp, 8
cmp eax, ecx
jb 0x421c58
mov dword [esp + 0x3c], edi
mov dword [esi + 0x78], edi
jmp 0x421c5f
mov dword [esi + 0x78], 0
mov al, byte [edi]
cmp al, 0x80
jae 0x421c76
movzx ecx, al
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x48], 1
jmp 0x421c8c
lea ecx, [esp + 0x6c]
push ecx
push edi
call fcn.0041c900
mov ecx, dword [esp + 0x74]
add esp, 8
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x421ce1
cmp dword [esp + 0x98], ecx
jae 0x421ce1
xor edi, edi
mov word [esp + 0x15c], di
mov dword [esp + 0x150], edi
movzx eax, byte [esi + 0x22]
lea edx, [esp + 0x140]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x60]
push edi
push ecx
call fcn.0041fe00
add esp, 0x14
cmp eax, edi
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov edi, dword [esp + 0x154]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
lea edx, [ecx + edi]
add edi, eax
mov eax, dword [esp + 0x30]
test eax, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0xc], edi
jbe 0x421d7f
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
sub eax, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x20]
jae 0x421d66
mov dword [eax + edi], ecx
mov al, byte [edx]
cmp al, 0x80
jae 0x421d33
movzx eax, al
mov dword [edi], eax
mov eax, 1
jmp 0x421d41
mov ecx, dword [esp + 0xc]
push edi
push ecx
call fcn.0041c900
add esp, 8
mov ecx, dword [esp + 0xc]
mov edx, dword [edi]
add ecx, eax
push edx
mov dword [esp + 0x10], ecx
call fcn.0041e310
mov ecx, dword [esp + 0x70]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x6c], ecx
jmp 0x421d6d
mov dword [eax + edi], 0
mov edx, dword [esp + 0x48]
add edi, 4
dec edx
mov dword [esp + 0x48], edx
jne 0x421d14
mov edi, dword [esp + 0xc]
lea eax, [esp + 0x140]
push eax
call fcn.0041f7a0
mov edx, dword [esp + 0x24]
add esp, 4
cmp edi, edx
mov word [esp + 0x15c], 1
ja 0x421f34
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
cmp eax, ecx
ja 0x421f34
cmp edi, edx
jne 0x421dc1
cmp eax, ecx
jne 0x421f34
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + edi*4]
test eax, eax
je 0x421ece
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x421e56
mov ebx, dword [esp + 0x24]
test byte [ebx + 0x1c], 0x40
mov ecx, dword [esp + 0x5c]
je 0x421e36
lea edx, [esp + 0x140]
push edx
mov edx, dword [ecx + edi*4]
mov ecx, dword [esp + 0x40]
push edx
add eax, ecx
push eax
call fcn.0041e3f0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x14c]
push eax
push ebx
mov dword [esp + 0x164], edx
call fcn.00420040
add esp, 0x14
test eax, eax
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov dl, byte [esp + 0x34]
mov byte [ebx + 0x1f], dl
jmp 0x421ef0
mov edx, dword [ecx + edi*4]
mov ecx, dword [esp + 0x3c]
push ebx
push edx
add eax, ecx
push eax
call fcn.0041e3f0
mov dl, byte [esp + 0x40]
add esp, 0xc
mov byte [ebx + 0x1f], dl
jmp 0x421ef0
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + edi*4]
push eax
call fcn.0041e310
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0x144]
push ebx
push ecx
mov dword [esp + 0x34], eax
call fcn.0041fc30
movzx eax, byte [esi + 0x22]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x14c]
push edx
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [edx + edi*4]
push ecx
mov ecx, dword [esp + 0x6c]
push eax
push ecx
call fcn.0041fe00
add esp, 0x20
test eax, eax
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + edi*4]
mov ecx, dword [esp + 0x154]
push ebx
push eax
push ecx
call fcn.0041e3f0
mov dl, byte [esp + 0x40]
add esp, 0xc
mov byte [ebx + 0x1f], dl
jmp 0x421ef0
cmp byte [ebx + 1], 0xf8
jne 0x421eec
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x24]
push 0x80
push eax
push ebx
call fcn.0041fbb0
add esp, 0xc
jmp 0x421ef0
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x164]
test eax, eax
je 0x421f22
xor ecx, ecx
mov cx, word [ebx + 0x1c]
and ecx, 0xfe7f
or ecx, 0x20
mov word [ebx + 0x1c], cx
mov edx, dword [esp + 0x154]
mov dword [ebx + 0x14], edx
mov eax, dword [esp + 0x164]
mov dword [ebx + 0x24], eax
push ebx
call fcn.00420030
add esp, 4
mov dword [esp + 0xc], eax
jmp case.0x420d10.12
mov dword [esp + 0xc], 0xb
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x28], ecx
lea esi, [eax + edx*8]
lea ecx, [ebx + ebx*4]
lea ebx, [esi + ecx*8 - 0x28]
cmp esi, ebx
ja case.0x420d10.12
xor edi, edi
test byte [esi + 0x1d], 8
je 0x421f77
push esi
call fcn.0041f560
add esp, 4
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push edx
mov eax, 0x66666667
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov al, byte [eax + ecx]
mov ecx, esi
call fcn.00420a60
add esi, 0x28
add esp, 4
add edi, 0x28
cmp esi, ebx
jbe 0x421f68
jmp case.0x420d10.12
mov ecx, dword [edi + 0x4c]
mov edx, dword [ebx + 0x10]
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 8]
movzx ecx, byte [edi + 0x100]
mov dword [esp + 0x20], edx
lea edx, [eax + eax*4]
lea eax, [esi + edx*8 - 0x28]
cmp esi, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
ja 0x4220dd
mov eax, 0xffffffe8
mov ecx, esi
sub eax, ecx
mov dword [esp + 0x28], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x422047
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
lea ecx, [esi + eax + 0x18]
push edx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x24]
mov al, byte [ecx + edx]
mov ecx, esi
call fcn.00420a60
add esp, 4
test byte [esi + 0x1d], 8
je 0x42205d
mov eax, dword [esi + 0x18]
test eax, eax
jle 0x42205d
push esi
call fcn.0041f560
add esp, 4
mov eax, dword [esp + 0x4c]
push eax
push esi
call fcn.0041e230
mov edi, eax
push edi
call fcn.0041e310
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x6c], eax
cdq
add ecx, eax
mov eax, dword [esp + 0xb0]
adc eax, edx
push 0
push edi
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
call fcn.0041c9d0
mov ecx, dword [esp + 0x50]
add ecx, eax
add esp, 0x14
test byte [esi + 0x1d], 8
mov dword [esp + 0x3c], ecx
je 0x4220be
mov eax, dword [esp + 0x30]
mov ecx, dword [esi]
add eax, ecx
mov dword [esp + 0x30], eax
jmp 0x4220ce
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4220ce
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x54]
add esi, 0x28
cmp esi, eax
jbe 0x422010
mov eax, dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.0041c9d0
mov esi, eax
mov eax, dword [esp + 0x44]
add eax, esi
mov dword [esp + 0x44], eax
cdq
push edx
push eax
call fcn.0041c9d0
add esp, 0x10
cmp esi, eax
jge 0x422108
inc dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
cdq
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xe4], edx
cdq
mov edi, eax
mov eax, dword [esp + 0xa4]
sub edi, esi
mov ecx, edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0xe0], esi
sbb ecx, dword [esp + 0xe4]
add edi, edx
mov edx, dword [esp + 0x10]
adc ecx, eax
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
ja 0x420e5d
jb 0x42215b
cmp edi, eax
ja 0x420e5d
mov ebx, dword [ebx + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x4c]
lea eax, [ebx + ebx*4]
push 0
lea esi, [edx + eax*8]
push edi
push esi
mov dword [esp + 0x24], esi
call fcn.0041f480
add esp, 0xc
test eax, eax
jne 0x4244fa
mov eax, dword [esi + 0x14]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x3c]
cmp eax, 0x80
jae 0x4221a1
mov ecx, dword [esp + 0x5c]
mov byte [ecx], al
mov esi, 1
jmp 0x4221b1
mov edx, dword [esp + 0x5c]
push eax
push edx
call fcn.0041c6f0
add esp, 8
mov esi, eax
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x54]
ja 0x422238
nop
mov eax, dword [esp + 0x4c]
push eax
push ebx
call fcn.0041e230
add esp, 8
cmp eax, 0x80
jae 0x4221e3
mov ecx, dword [esp + 0x5c]
mov byte [esi + ecx], al
mov eax, 1
jmp 0x4221f4
mov edx, dword [esp + 0x5c]
push eax
lea eax, [esi + edx]
push eax
call fcn.0041c6f0
add esp, 8
add esi, eax
mov eax, dword [esp + 0x54]
add ebx, 0x28
cmp ebx, eax
jbe 0x4221c0
mov ebx, dword [esp + 0x24]
cmp ebx, eax
ja 0x422238
lea esp, [esp]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x5c]
push ecx
mov edx, edi
push ebx
sub edx, esi
push edx
lea ecx, [esi + eax]
push ecx
call fcn.0041e330
add esi, eax
mov eax, dword [esp + 0x64]
add ebx, 0x28
add esp, 0x10
cmp ebx, eax
jbe 0x422210
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
test ecx, ecx
mov dword [eax + 0x18], edi
mov word [eax + 0x1c], 0x50
mov dword [eax + 0x20], 0
je 0x42226d
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov word [eax + 0x1c], 0x850
mov byte [eax + 0x1f], 1
jmp case.0x420d10.12
mov al, byte [edx + 0x1c]
test al, al
je 0x42228a
cmp dword [edx + 0x90], 1
jle case.0x420d10.12
mov ebx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
lea edx, [ebx + ebx*2]
mov esi, dword [ecx + edx*8 + 4]
push esi
call fcn.004297b0
add esp, 4
test eax, eax
jne case.0x420d10.12
push esi
call fcn.004271f0
add esp, 4
mov dword [esp + 0xc], eax
mov dword [edi + 0x14c], 1
jmp case.0x420d10.12
cmp dword [edx + 0x90], 1
mov al, byte [ebx + 4]
mov cl, byte [ebx + 8]
mov byte [esp + 0x17], al
jle 0x42231c
test al, al
je 0x42231c
cmp byte [edx + 0x1c], 0
jne 0x42231c
test cl, cl
mov eax, str.rollback
jne 0x4222f3
mov eax, str.commit
push 0
push str._transaction___SQL_statements_in_progress
push eax
push str.cannot
add edi, 0xf4
push edi
call fcn.00420730
add esp, 0x14
mov dword [esp + 0xc], 1
jmp case.0x420d10.12
cmp al, byte [edx + 0x1c]
jne 0x424419
test al, al
jne 0x422336
mov eax, str.cannot_start_a_transaction_within_a_transaction
push 0
push eax
jmp 0x424244
test cl, cl
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x422344
mov eax, str.cannot_commit___no_transaction_is_active
push 0
push eax
jmp 0x424244
mov eax, dword [ebx + 4]
mov ecx, dword [edx + 8]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*8 + 4]
test eax, eax
je case.0x420d10.12
mov edx, dword [ebx + 8]
push edx
push eax
call fcn.00426c00
add esp, 8
cmp eax, 5
mov dword [esp + 0xc], eax
je 0x424473
test eax, eax
je case.0x420d10.12
cmp eax, 8
jne 0x4244a3
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
test eax, eax
mov ebx, dword [ebx + 0xc]
jge 0x4223a4
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
neg ebx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xe8]
push edx
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
inc ebx
push ebx
push eax
call fcn.00428d30
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xf4]
cdq
add esp, 0xc
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x422c4a
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov edi, dword [esp + 0x50]
lea eax, [eax + eax*2]
push edi
lea esi, [edx + eax*8]
call fcn.0041f9b0
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
mov edx, dword [esi + 4]
push eax
inc ecx
push ecx
push edx
call fcn.00428e50
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
add esp, 0x10
test eax, eax
jne 0x422429
mov eax, dword [esi + 0x14]
mov ecx, dword [edi]
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or dword [eax + 0xc], 0x10
jmp 0x422436
cmp eax, 1
jne 0x422436
mov edx, dword [esi + 0x14]
mov al, byte [edi]
mov byte [edx + 0x58], al
cmp dword [ebx + 4], 1
jne case.0x420d10.12
mov ecx, dword [esp + 0x10]
push ecx
call fcn.0041ec60
add esp, 4
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov ecx, dword [edx + 8]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*8 + 4]
xor ecx, ecx
cmp eax, ecx
je 0x4224f6
lea edx, [esp + 0xac]
push edx
push 1
push eax
call fcn.00428d30
add esp, 0xc
test eax, eax
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov eax, dword [esp + 0xac]
cmp eax, dword [ebx + 8]
je case.0x420d10.12
mov ecx, dword [edi + 0xf4]
push ecx
call fcn.00417f90
mov esi, dword [esp + 0x14]
push str.database_schema_has_changed
push esi
call fcn.00420690
mov dword [edi + 0xf4], eax
mov ebx, dword [ebx + 4]
mov eax, dword [esi + 8]
lea edx, [ebx + ebx*2]
mov ecx, dword [eax + edx*8 + 0x14]
mov edx, dword [ecx]
mov eax, dword [esp + 0xb8]
add esp, 0xc
cmp edx, eax
je 0x4224e0
push ebx
push esi
call fcn.0042e7d0
add esp, 8
push esi
call fcn.0041ec60
add esp, 4
mov dword [esp + 0xc], 0x11
jmp case.0x420d10.12
mov dword [esp + 0xc], ecx
mov dword [esp + 0xac], ecx
jmp 0x422488
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
mov edx, dword [edx + 8]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x28], eax
lea eax, [esi + esi*2]
lea eax, [edx + eax*8]
mov edx, dword [eax + 4]
mov dword [esp + 0x60], edx
cmp byte [esp + 0x17], 9
mov dword [esp + 0x48], ecx
jne 0x422549
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x58]
cmp al, byte [edi + 0x100]
mov dword [esp + 0x20], 1
jae 0x422551
mov byte [edi + 0x100], al
jmp 0x422551
mov dword [esp + 0x20], 0
mov al, byte [ebx + 3]
test al, al
je 0x422578
mov edx, dword [edi + 0x4c]
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*8]
push eax
mov dword [esp + 0x3c], eax
call fcn.0041f9b0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
add esp, 4
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x28]
push 1
push esi
lea ecx, [ebx - 0x14]
mov edx, edi
call fcn.004208f0
mov esi, eax
add esp, 8
test esi, esi
je 0x4244fd
mov edx, dword [esi]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x4c]
mov byte [esi + 0x1c], 1
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [esp + 0x68]
push ecx
push edx
push eax
call fcn.0042beb0
mov dword [esp + 0x20], eax
mov al, byte [ebx + 1]
add esp, 0x14
cmp al, 0xfa
jne 0x4225e2
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x4c], eax
add eax, 5
mov dword [esi + 0x48], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x14]
mov ecx, dword [esi + 0x4c]
mov dl, byte [eax + 0x59]
mov byte [ecx + 4], dl
jmp 0x4225ef
lea eax, [esi + 0x23]
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], eax
mov eax, dword [esp + 0xc]
test eax, eax
je 0x42262e
cmp eax, 5
je 0x424487
cmp eax, 0x10
jne 0x4244a3
cmp byte [ebx + 1], 0xfa
setne al
test al, al
sete cl
mov byte [esi + 0x21], al
mov byte [esi + 0x22], cl
mov dword [esi], 0
mov dword [esp + 0xc], 0
jmp case.0x420d10.12
mov edx, dword [esi]
push edx
call fcn.0042c2c0
add esp, 4
test al, 0xf0
jne 0x422677
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x42264c
cmp ecx, 2
jne 0x422677
mov cl, al
shr eax, 1
and cl, 1
and al, 1
test cl, cl
mov byte [esi + 0x21], cl
mov byte [esi + 0x22], al
je 0x422665
cmp byte [ebx + 1], 0xfa
je 0x422677
test al, al
je case.0x420d10.12
cmp byte [ebx + 1], 0xfa
je case.0x420d10.12
mov dword [esp + 0xc], 0xb
jmp 0x4244a3
mov eax, dword [ebx + 4]
push 1
push 0xffffffffffffffff
mov ecx, ebx
mov edx, edi
call fcn.004208f0
mov esi, eax
add esp, 8
test esi, esi
je 0x4244fd
mov edx, dword [esp + 0x10]
lea eax, [esi + 0x30]
push eax
push 0x41e
push 0x1f4
push 1
push 0
push edx
mov byte [esi + 0x1c], 1
call fcn.0041a230
add esp, 0x18
test eax, eax
mov dword [esp + 0xc], eax
jne 0x422784
mov eax, dword [esi + 0x30]
push 1
push eax
call fcn.00426c00
add esp, 8
test eax, eax
mov dword [esp + 0xc], eax
jne 0x422784
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x422761
mov edx, dword [esi + 0x30]
push 2
lea ecx, [esp + 0xf0]
push ecx
push edx
call fcn.0042b7a0
add esp, 0xc
test eax, eax
mov dword [esp + 0xc], eax
jne 0x42274d
mov eax, dword [esi]
mov ecx, dword [ebx + 0x10]
mov edx, dword [esp + 0xec]
push eax
mov eax, dword [esi + 0x30]
push ecx
push 1
push edx
push eax
call fcn.0042beb0
mov ebx, dword [ebx + 0x10]
mov dword [esi + 0x4c], ebx
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x14]
mov cl, byte [eax + 0x59]
mov byte [ebx + 4], cl
mov edx, dword [esi + 0x4c]
add esp, 0x14
add edx, 5
mov dword [esi + 0x48], edx
mov byte [esi + 0x21], 0
mov al, byte [esi + 0x21]
test al, al
sete al
mov byte [esi + 0x22], al
jmp case.0x420d10.12
mov eax, dword [esi]
mov ecx, dword [esi + 0x30]
push eax
push 0
push 1
push 1
push ecx
call fcn.0042beb0
lea edx, [esi + 0x23]
add esp, 0x14
mov dword [esp + 0xc], eax
mov byte [esi + 0x21], 1
mov dword [esi + 0x48], edx
mov al, byte [esi + 0x21]
test al, al
sete al
mov byte [esi + 0x22], al
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
push 0
push 0xffffffffffffffff
lea ecx, [ebx - 0x14]
mov edx, edi
call fcn.004208f0
add esp, 8
test eax, eax
je 0x4244fd
mov byte [eax + 0x1c], 1
mov byte [eax + 0x1e], 1
mov cl, byte [ebx + 8]
lea edx, [eax + 0x23]
mov byte [eax + 0x1f], cl
mov dword [eax + 0x48], edx
mov byte [eax + 0x21], 1
mov byte [eax + 0x22], 0
jmp case.0x420d10.12
mov ebx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + ebx*4]
push ecx
push edi
call fcn.0041da10
mov edx, dword [edi + 0x30]
add esp, 8
mov dword [edx + ebx*4], 0
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov esi, dword [ecx + eax*4]
cmp dword [esi], 0
je case.0x420d10.12
mov eax, dword [esp + 0x24]
cmp eax, 6
mov byte [esi + 0x1c], 0
je 0x42281b
cmp eax, 0x40
je 0x42281b
xor eax, eax
jmp 0x422820
mov eax, 1
mov edx, dword [esi + 0x48]
mov byte [edx], al
mov al, byte [esi + 0x21]
test al, al
je 0x4228c0
mov eax, dword [esp + 0x50]
push eax
call fcn.0041f850
mov dword [esp + 0xb4], eax
mov eax, dword [ebx + 8]
add esp, 4
test eax, eax
mov dword [esp + 0xb4], edx
jne 0x42286c
mov ecx, dword [esp + 0xb0]
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], edx
mov byte [esi + 0x19], 0
mov byte [esi + 0x20], 1
jmp case.0x420d10.12
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
lea eax, [esp + 0x64]
push eax
mov eax, dword [esi]
push 0
push ecx
push edx
push 0
push 0
push eax
call fcn.0042a290
add esp, 0x1c
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
test eax, eax
sete al
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov byte [esi + 0x19], al
jmp 0x422928
mov ecx, dword [esi + 0x4c]
mov dx, word [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x124], ecx
mov ecx, dword [edi + 0x4c]
lea eax, [eax + eax*4]
mov word [esp + 0x128], dx
lea edx, [ecx + eax*8]
lea eax, [esp + 0x64]
push eax
push 0
push 0
push 0
lea ecx, [esp + 0x134]
push ecx
mov dword [esp + 0x140], edx
mov edx, dword [esi]
push 0
push edx
mov byte [esp + 0x146], 0
mov byte [esp + 0x147], 0
call fcn.0042a290
add esp, 0x1c
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov byte [esi + 0x19], al
mov eax, dword [esi + 0x48]
xor ecx, ecx
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], ecx
mov byte [eax], cl
mov eax, dword [esp + 0x24]
cmp eax, 0x75
je 0x422993
cmp eax, 6
je 0x422993
cmp dword [esp + 0x64], ecx
jl 0x422982
mov edx, dword [esi]
lea ecx, [esp + 0x64]
push ecx
push edx
call fcn.0042c160
add esp, 8
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov byte [esi + 0x19], al
mov eax, dword [esp + 0x64]
test eax, eax
je case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [esi]
push eax
call fcn.00427a10
add esp, 4
mov dword [esp + 0x64], eax
jmp 0x422969
cmp dword [esp + 0x64], ecx
jge 0x4229a8
mov edx, dword [esi]
lea ecx, [esp + 0x64]
push ecx
push edx
call fcn.0042c040
jmp 0x422957
mov dword [esp + 0x64], ecx
jmp case.0x420d10.12
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov esi, dword [edx + ecx*4]
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
je 0x422a1f
cmp byte [esp + 0x17], 0x7a
jne 0x4229d0
mov eax, dword [esi + 0x4c]
mov byte [eax + 6], 1
lea ecx, [esp + 0x11c]
push ecx
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x18]
cdq
push 0
push edx
mov edx, dword [ecx + 0x14]
push eax
mov eax, dword [esi]
push 0
push edx
push eax
call fcn.0042a290
mov ecx, dword [esi + 0x4c]
add esp, 0x1c
test eax, eax
mov dword [esp + 0xc], eax
mov byte [ecx + 6], 0
jne case.0x420d10.12
mov ecx, dword [esp + 0x11c]
test ecx, ecx
sete al
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
cmp byte [ebx], 0x7a
jne 0x4241bc
test eax, eax
je case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi + 0x4c]
mov esi, dword [esp + 0x50]
lea eax, [eax + eax*4]
mov dword [esp + 0x28], edx
lea edx, [ecx + eax*8]
push esi
mov dword [esp + 0x64], edx
call fcn.0041f9b0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x30]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
add esp, 4
test eax, eax
mov dword [esp + 0x104], ecx
mov dword [esp + 0x24], eax
je case.0x420d10.12
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
call fcn.0041e9a0
mov ecx, dword [esp + 0x2c]
sub ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x74]
push edx
mov dword [esp + 0x30], eax
push 0
cdq
push edx
push eax
mov eax, dword [esp + 0x34]
push 0
push eax
push ecx
mov dword [esi + 0x68], 0
call fcn.0042a290
add esp, 0x20
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov eax, dword [esp + 0x70]
test eax, eax
jge 0x422b14
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x70]
push edx
push eax
call fcn.0042c040
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
add esp, 8
test eax, eax
je 0x422b14
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x70]
push ecx
push edx
push eax
push 0
push esi
call fcn.0041eb10
add esp, 0x14
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x422b4f
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x180]
push ecx
push edx
call fcn.0041ea00
add esp, 8
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov ecx, dword [esp + 0x180]
cmp ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x184]
jne 0x422b9d
cmp edx, dword [esp + 0x104]
jne 0x422b9d
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [esp + 0x50]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je case.0x420d10.12
mov edi, dword [esp + 0x50]
mov ecx, dword [edi]
lea edx, [esp + 0xf0]
push edx
mov edx, dword [edi + 4]
push 0
push edx
push ecx
push 0
push 0
push eax
call fcn.0042a290
mov dword [esp + 0x28], eax
mov eax, dword [edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [edi + 4]
add esp, 0x1c
test eax, eax
sete dl
test eax, eax
mov dword [esi + 0xc], ecx
mov byte [esi + 0x19], dl
mov byte [esi + 0x1c], 0
mov dword [esi + 0x68], 0
je case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov ebx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov edx, dword [eax + ebx*4]
mov eax, dword [edx + 0x58]
mov dword [ecx], eax
mov edx, dword [edx + 0x5c]
mov dword [ecx + 4], edx
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ebx*4]
mov ebx, dword [eax + 0x58]
mov edi, dword [eax + 0x5c]
add ebx, 1
adc edi, 0
mov dword [eax + 0x58], ebx
mov dword [eax + 0x5c], edi
xor edx, edx
mov dx, word [ecx + 0x1c]
and edx, 0xffe4
or edx, 4
mov word [ecx + 0x1c], dx
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov esi, dword [edi + 0x30]
xor edx, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edx
mov esi, dword [esi + eax*4]
mov eax, dword [esi]
cmp eax, edx
je 0x422eca
push eax
mov dword [esp + 0x50], edx
call fcn.0042c2c0
and al, 3
add esp, 4
cmp al, 1
jne 0x422677
mov al, byte [esi + 0x1b]
test al, al
jne 0x422dd7
mov al, byte [esi + 0x1d]
test al, al
je 0x422cbb
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x40], ecx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x44], edx
jmp 0x422d36
mov ecx, dword [esi]
lea eax, [esp + 0x80]
push eax
push ecx
call fcn.0042a210
add esp, 8
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov eax, dword [esp + 0x80]
test eax, eax
je 0x422cf7
mov dword [esp + 0x40], 1
mov dword [esp + 0x44], 0
jmp 0x422d36
mov eax, dword [esi]
lea edx, [esp + 0x40]
push edx
push eax
call fcn.0042bef0
mov eax, dword [esp + 0x48]
add esp, 8
cmp eax, 0xffffffff
jne 0x422d20
cmp dword [esp + 0x44], 0x7fffffff
jne 0x422d20
mov byte [esi + 0x1b], 1
jmp 0x422d36
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
add ecx, 1
adc eax, 0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x422d9b
mov edx, dword [edi + 0x4c]
lea ecx, [ebx + ebx*4]
lea ebx, [edx + ecx*8]
push ebx
call fcn.0041f9b0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
add esp, 4
cmp eax, 0xffffffff
jne 0x422d65
cmp ecx, 0x7fffffff
je 0x42449b
mov dl, byte [esi + 0x1b]
test dl, dl
jne 0x42449b
mov edx, dword [esp + 0x44]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x422d8e
jl 0x422d86
cmp dword [esp + 0x40], eax
jae 0x422d8e
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x40]
mov dword [ebx], eax
mov ecx, dword [esp + 0x44]
mov dword [ebx + 4], ecx
cmp dword [esp + 0x44], 0x7fffffff
ja 0x422dc8
jb 0x422dae
cmp dword [esp + 0x40], 0xffffffff
jae 0x422dc8
mov byte [esi + 0x1d], 1
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
add edx, 1
adc eax, 0
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
jmp 0x422dcc
mov byte [esi + 0x1d], 0
mov al, byte [esi + 0x1b]
test al, al
je 0x422eb7
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov edx, dword [ecx + 0x3c]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], ebx
nop
test ebx, ebx
jne 0x422e1b
mov ecx, eax
and ecx, 0xffffff
cmp ecx, eax
jne 0x422e17
cmp ebx, edx
jne 0x422e17
add eax, 1
adc edx, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x422e48
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x40]
push ecx
push 8
call fcn.004394d0
mov eax, dword [esp + 0x48]
add esp, 8
cmp ebx, 5
jge 0x422e44
and eax, 0xffffff
xor edx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jmp 0x422e48
mov edx, dword [esp + 0x44]
mov ecx, eax
or ecx, edx
je 0x422e7a
lea ecx, [esp + 0x80]
push ecx
push 0
push edx
mov edx, dword [esi]
push eax
push 0
push 0
push edx
call fcn.0042a290
mov edx, dword [esp + 0x60]
add esp, 0x1c
inc ebx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], ebx
cmp ebx, 0x64
jge 0x422e96
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x422e96
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x422df0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x4c]
test eax, eax
mov dword [ecx + 0x3c], edx
jne 0x422eb7
mov eax, dword [esp + 0x80]
test eax, eax
je 0x42449b
mov ecx, dword [esp + 0x18]
mov byte [esi + 0x19], 0
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
mov edx, dword [esp + 0x40]
xor eax, eax
mov ax, word [ecx + 0x1c]
mov dword [ecx], edx
and eax, 0xffe4
or eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x44]
mov dword [ecx + 4], eax
jmp case.0x420d10.12
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 8]
mov eax, dword [edx + 0x4c]
mov esi, dword [edx + 0x30]
lea ecx, [ecx + ecx*4]
lea edi, [eax + ecx*8]
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx + 4]
mov esi, dword [esi + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0xb8], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0xbc], ecx
test byte [ebx + 3], 1
mov dword [esp + 0x20], esi
je 0x422f32
inc dword [edx + 0x104]
test byte [ebx + 3], 2
je 0x422f47
mov edx, dword [eax]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x30], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x34], edx
mov cl, byte [esi + 0x1d]
test cl, cl
je 0x422f63
mov ecx, dword [eax + 4]
cmp ecx, dword [esi + 0x14]
jl 0x422f63
jg 0x422f5f
mov edx, dword [eax]
cmp edx, dword [esi + 0x10]
jb 0x422f63
mov byte [esi + 0x1d], 0
mov ax, word [edi + 0x1c]
test al, 1
je 0x422f73
xor ecx, ecx
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], ecx
mov cl, byte [esi + 0x1e]
test cl, cl
je 0x423035
mov al, byte [esi + 0x1f]
test al, al
jne 0x422f91
mov eax, dword [esi + 0x38]
push eax
call fcn.00417f90
add esp, 4
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edx
mov eax, dword [edi + 0x18]
mov dword [esi + 0x34], eax
mov ecx, dword [edi + 0x14]
cmp ecx, dword [edi + 0x24]
je 0x42300a
mov dl, byte [esi + 0x1f]
test dl, dl
jne 0x42300a
add eax, 2
push eax
call fcn.00417e80
add esp, 4
test eax, eax
mov dword [esi + 0x38], eax
je 0x4244fa
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x34]
mov esi, dword [edi + 0x14]
mov edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x34]
mov eax, dword [edx + 0x38]
mov esi, dword [esp + 0x20]
mov byte [ecx + eax], 0
mov ecx, dword [edx + 0x34]
mov edx, dword [edx + 0x38]
mov byte [ecx + edx + 1], 0
mov byte [esi + 0x1c], 0
jmp 0x423073
mov al, byte [esi + 0x1f]
test al, al
mov dword [esi + 0x38], ecx
jne 0x42302f
xor eax, eax
mov ax, word [edi + 0x1c]
mov dword [edi + 0x24], 0
and eax, 0xffbf
or eax, 0x100
mov word [edi + 0x1c], ax
mov byte [esi + 0x1c], 0
jmp 0x423073
test ah, 8
je 0x42303e
mov eax, dword [edi]
jmp 0x423040
xor eax, eax
mov edx, dword [edi + 0x18]
xor ecx, ecx
mov cl, byte [ebx + 3]
and ecx, 8
push ecx
mov ecx, dword [esp + 0xc0]
push eax
mov eax, dword [edi + 0x14]
push edx
mov edx, dword [esp + 0xc4]
push eax
mov eax, dword [esi]
push ecx
push edx
push 0
push eax
call fcn.0042c500
add esp, 0x20
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
test eax, eax
mov byte [esi + 0x19], 0
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
jne case.0x420d10.12
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xb8]
test ecx, ecx
je case.0x420d10.12
mov eax, dword [ebx + 0x10]
test eax, eax
je case.0x420d10.12
mov edx, dword [esp + 0xbc]
mov esi, dword [esi + 4]
push edx
mov edx, dword [esp + 0xbc]
push edx
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esi + esi*2]
mov esi, dword [eax + 8]
mov edx, dword [esi + edx*8]
mov eax, dword [eax + 0xb4]
push edx
mov dl, byte [ebx + 3]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x420d10.12
mov eax, dword [edi + 0x30]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0xb8]
test eax, eax
je 0x42311d
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x42311d
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
push esi
call fcn.0041e1b0
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov eax, dword [esi]
push eax
call fcn.0042c6f0
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
mov byte [esi + 0x1d], 0
mov dword [esi + 0x68], 0
jne 0x423197
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
mov dword [esp + 0x28], ecx
je 0x423197
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x423197
mov edx, dword [esp + 0x114]
mov esi, dword [esi + 4]
push edx
mov edx, dword [esp + 0x114]
push edx
mov edx, dword [eax + 8]
push ecx
lea ecx, [esi + esi*2]
mov ecx, dword [edx + ecx*8]
mov edx, dword [eax + 0xb4]
push ecx
push 9
push edx
call dword [esp + 0x40]
add esp, 0x18
test byte [ebx + 8], 1
je case.0x420d10.12
inc dword [edi + 0x104]
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
test eax, eax
je 0x4231c7
mov eax, dword [edi + 0x104]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.0041ec30
add esp, 8
mov dword [edi + 0x104], 0
jmp case.0x420d10.12
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea ecx, [eax + edx*8]
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ebx, dword [eax + edx*4]
mov esi, dword [ebx]
push ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], esi
call fcn.0041e1b0
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov al, byte [ebx + 0x22]
test al, al
je 0x423252
lea ecx, [esp + 0x170]
push ecx
push esi
call fcn.0042bef0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x50]
mov ecx, dword [esp + 0x17c]
cdq
add esp, 8
cmp ecx, edx
jg 0x420e5d
mov ecx, dword [esp + 0x170]
jl 0x42324a
cmp ecx, eax
ja 0x420e5d
mov eax, ecx
mov dword [esp + 0x78], eax
jmp 0x423276
lea edx, [esp + 0x78]
push edx
push esi
call fcn.0042bf80
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov edx, dword [ecx + 0x50]
add esp, 8
cmp eax, edx
ja 0x420e5d
mov esi, dword [esp + 0x18]
push 0
push eax
push esi
call fcn.0041f480
add esp, 0xc
test eax, eax
jne 0x4244fa
mov edx, dword [esp + 0x78]
mov ecx, dword [esi + 0x14]
xor eax, eax
mov ax, word [esi + 0x1c]
mov dword [esi + 0x18], edx
push ecx
and eax, 0xfff0
or eax, 0x10
mov word [esi + 0x1c], ax
mov al, byte [ebx + 0x22]
mov edx, dword [esp + 0x7c]
push edx
test al, al
mov eax, dword [esp + 0x28]
push 0
push eax
je 0x4232d3
call fcn.00427890
add esp, 0x10
mov dword [esp + 0xc], eax
mov byte [esi + 0x1f], 1
jmp case.0x420d10.12
call fcn.0042c000
add esp, 0x10
mov dword [esp + 0xc], eax
mov byte [esi + 0x1f], 1
jmp case.0x420d10.12
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov esi, dword [edx + ecx*4]
push esi
call fcn.0041e1b0
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov al, byte [esi + 0x19]
test al, al
je 0x423323
mov eax, dword [esi + 8]
mov dword [esp + 0xc0], eax
mov ecx, dword [esi + 0xc]
mov dword [esp + 0xc4], ecx
jmp 0x42335e
mov al, byte [esi + 0x1e]
test al, al
je 0x423340
mov edx, dword [esi + 0x40]
mov dword [esp + 0xc0], edx
mov eax, dword [esi + 0x44]
mov dword [esp + 0xc4], eax
jmp 0x42335e
mov al, byte [esi + 0x1c]
test al, al
jne case.0x420d10.12
mov edx, dword [esi]
lea ecx, [esp + 0xc0]
push ecx
push edx
call fcn.0042bef0
add esp, 8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [eax], ecx
xor ecx, ecx
mov cx, word [eax + 0x1c]
mov dword [eax + 4], edx
and ecx, 0xffe4
or ecx, 4
mov word [eax + 0x1c], cx
jmp case.0x420d10.12
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + edx*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x420d10.12
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov esi, dword [edx + ecx*4]
mov eax, dword [esi]
lea ecx, [esp + 0xdc]
push ecx
push eax
call fcn.0042a210
mov dl, byte [esp + 0xe4]
mov dword [esp + 0x14], eax
mov byte [esi + 0x1c], dl
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
mov eax, dword [esp + 0xe4]
add esp, 8
test eax, eax
je case.0x420d10.12
mov ebx, dword [ebx + 8]
test ebx, ebx
jle case.0x420d10.12
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x42343c
lea edx, [esp + 0x84]
push edx
push eax
call fcn.0042a1d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x8c]
add esp, 8
test eax, eax
sete al
mov byte [esi + 0x1a], al
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
jmp 0x423447
mov dword [esp + 0x84], 1
mov cl, byte [esp + 0x84]
mov byte [esi + 0x1c], cl
mov eax, dword [esp + 0x84]
test eax, eax
je case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [edx + 0xd8]
test eax, eax
jne 0x4244d4
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + edx*4]
test esi, esi
je case.0x420d10.12
mov cl, byte [esi + 0x1c]
test cl, cl
mov eax, dword [esi]
jne 0x4234e7
mov dword [esp + 0x9c], 1
cmp byte [ebx], 0x67
jne 0x4234b5
lea ecx, [esp + 0x9c]
push ecx
push eax
call fcn.0042c040
jmp 0x4234c3
lea edx, [esp + 0x9c]
push edx
push eax
call fcn.0042c160
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
add esp, 8
test eax, eax
mov byte [esi + 0x1c], al
mov dword [esi + 0x68], 0
jne 0x4234e7
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
mov byte [esi + 0x19], 0
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0x28], eax
je case.0x420d10.12
mov edx, dword [esp + 0x38]
test byte [edx + 0x1d], 8
mov esi, edx
je 0x423528
push esi
call fcn.0041f560
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
push edx
push 0
push 0
cdq
push 0x457f19
push edx
push eax
mov eax, dword [esp + 0x40]
push ecx
push eax
call fcn.0042c500
add esp, 0x20
mov dword [esp + 0xc], eax
mov dword [edi + 0x68], 0
jmp case.0x420d10.12
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov eax, dword [edx + ecx*4]
mov esi, dword [eax]
test esi, esi
mov dword [esp + 0x28], eax
je case.0x420d10.12
mov eax, dword [eax + 0x4c]
mov cx, word [ebx + 0xc]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x134], eax
mov eax, dword [edi + 0x4c]
lea edx, [ebx + ebx*4]
mov word [esp + 0x138], cx
lea ecx, [eax + edx*8]
lea edx, [esp + 0x130]
push edx
push 0
push 0
push 0
lea eax, [esp + 0x144]
push eax
push 0
push esi
mov byte [esp + 0x156], 0
mov byte [esp + 0x157], 0
mov dword [esp + 0x158], ecx
call fcn.0042a290
add esp, 0x1c
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4235ed
mov eax, dword [esp + 0x130]
test eax, eax
jne 0x4235ed
push esi
call fcn.0042c6f0
add esp, 4
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x68], 0
jmp case.0x420d10.12
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax]
test ecx, ecx
je case.0x420d10.12
mov dl, byte [eax + 0x1c]
test dl, dl
jne case.0x420d10.12
lea edx, [esp + 0x178]
push edx
push ecx
call fcn.0041ea00
add esp, 8
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4244a3
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x178]
xor ecx, ecx
mov cx, word [eax + 0x1c]
mov dword [eax], edx
and ecx, 0xffe4
or ecx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x17c]
mov dword [eax + 4], ecx
jmp case.0x420d10.12
mov eax, dword [edi + 0x30]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
cmp dword [esi], 0
je case.0x420d10.12
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0xf4], ecx
mov dx, word [ebx + 0x10]
mov ecx, dword [edi + 0x4c]
mov word [esp + 0xf8], dx
mov byte [esp + 0xfa], 0
mov byte [esp + 0xfb], 0
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esi + 0x48]
mov dword [esp + 0xfc], edx
mov cl, byte [ebx + 3]
lea edx, [esp + 0x94]
push edx
push 0
mov byte [eax], cl
push 0
lea eax, [esp + 0x100]
push eax
push esi
call fcn.0041eb10
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x20], eax
mov byte [ecx], 0
mov al, byte [ebx]
add esp, 0x14
cmp al, 0x28
mov eax, dword [esp + 0x94]
jne 0x4236f2
neg eax
jmp 0x4236f3
inc eax
test eax, eax
mov dword [esp + 0x94], eax
jle case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov edx, dword [edx + 0x8c]
xor eax, eax
test edx, edx
je 0x42375a
jmp 0x423720
cmp dword [edx + 0x44], 0xbdf20da3
jne 0x42373a
cmp byte [edx + 0x101], 2
jae 0x42373a
mov ecx, dword [edx + 0x70]
test ecx, ecx
jl 0x42373a
inc eax
mov edx, dword [edx + 8]
test edx, edx
jne 0x423720
cmp eax, 1
jle 0x42375a
mov dword [esp + 0xc], 6
mov dword [edi + 0x7c], 2
jmp case.0x420d10.12
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x10]
lea esi, [eax + eax*2]
mov eax, dword [ebx + 4]
lea edx, [esp + 0xcc]
push edx
mov edx, dword [ecx + 8]
push eax
shl esi, 3
mov eax, dword [edx + esi + 4]
push eax
call fcn.0042cc30
mov ecx, dword [esp + 0x24]
xor edx, edx
mov dx, word [ecx + 0x1c]
mov edi, eax
mov eax, dword [esp + 0xd8]
add esp, 0xc
mov dword [esp + 0xc], edi
and edx, 0xffe4
or edx, 4
test edi, edi
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne case.0x420d10.12
mov eax, dword [esp + 0xcc]
test eax, eax
je case.0x420d10.12
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x10]
push ecx
push eax
mov eax, dword [edx + 8]
add eax, esi
push eax
call fcn.0042f900
add esp, 0xc
jmp case.0x420d10.12
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [eax + 8]
lea edx, [ebx + ebx*2]
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.0042c970
add esp, 8
mov dword [esp + 0xc], eax
jmp case.0x420d10.12
mov ebx, dword [ebx + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
xor ecx, ecx
lea eax, [ebx + ebx*2]
cmp byte [esp + 0x17], 0x32
setne cl
lea eax, [edx + eax*8]
mov edx, dword [eax + 4]
dec ecx
and ecx, 3
add ecx, 2
push ecx
lea ecx, [esp + 0x110]
push ecx
push edx
call fcn.0042b7a0
add esp, 0xc
test eax, eax
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x18]
cdq
mov dword [ecx + 4], edx
jmp 0x4211d6
mov ecx, dword [ebx + 8]
test ecx, ecx
mov eax, dword [ebx + 4]
jne 0x42387b
mov edx, dword [edx + 8]
lea ecx, [eax + eax*2]
mov ecx, dword [edx + ecx*8 + 0x14]
test byte [ecx + 0x5a], 1
je case.0x420d10.12
cmp eax, 1
mov edx, str.sqlite_temp_master
je 0x42388a
mov edx, str.sqlite_master
mov ecx, dword [esp + 0x10]
lea esi, [edi + 0xf4]
mov dword [esp + 0x1e0], esi
mov esi, dword [ebx + 0x10]
push esi
push edx
mov dword [esp + 0x1e4], eax
lea edx, [eax + eax*2]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1e0], ecx
mov edx, dword [eax + edx*8]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push ecx
call fcn.00417be0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4244fd
mov eax, dword [esp + 0x10]
push 0
lea ecx, [esp + 0x1dc]
push ecx
push fcn.0041ace0
push esi
push eax
mov byte [eax + 0x80], 1
call fcn.0041ba50
mov ebx, eax
add esp, 0x14
cmp ebx, 4
mov dword [esp + 0xc], ebx
jne 0x42390a
mov ebx, dword [esp + 0x1e4]
mov dword [esp + 0xc], ebx
push esi
call fcn.00417f90
mov edx, dword [esp + 0x14]
add esp, 4
cmp ebx, 7
mov byte [edx + 0x80], 0
je 0x4244fd
jmp case.0x420d10.12
mov ebx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
push ebx
push eax
call fcn.00439c70
add esp, 8
mov dword [esp + 0xc], eax
jmp case.0x420d10.12
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
call fcn.0042ea90
add esp, 0xc
jmp case.0x420d10.12
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
call fcn.0042e740
add esp, 0xc
jmp case.0x420d10.12
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
call fcn.0043b210
add esp, 0xc
jmp case.0x420d10.12
mov eax, dword [ebx + 8]
lea ecx, [eax*4 + 4]
push ecx
mov dword [esp + 0x50], eax
call fcn.00417e80
add esp, 4
test eax, eax
mov dword [esp + 0x30], eax
je 0x4244fd
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x4c]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea edi, [eax + edx*8]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x4c]
xor esi, esi
test ecx, ecx
mov dword [esp + 0x58], eax
jle 0x423a08
mov dword [esp + 0x24], eax
mov edi, edi
mov edx, dword [esp + 0x24]
push edx
call fcn.0041f850
mov ecx, dword [esp + 0x34]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
add esp, 4
inc esi
add ecx, 0x28
cmp esi, eax
mov dword [esp + 0x24], ecx
jl 0x4239e0
mov eax, dword [esp + 0x30]
mov dword [eax + esi*4], 0
mov ecx, dword [edi]
lea edx, [esp + 0x74]
push edx
mov edx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [ecx + 8]
push eax
movzx eax, byte [ebx + 3]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.0042b910
mov ecx, dword [edi]
mov ebx, dword [edi + 4]
mov esi, eax
mov eax, dword [esp + 0x88]
cdq
sub ecx, eax
mov dword [edi], ecx
mov ecx, dword [esp + 0x6c]
sbb ebx, edx
push ecx
mov dword [edi + 4], ebx
call fcn.0041fa90
mov eax, dword [esp + 0x8c]
add esp, 0x18
test eax, eax
je 0x423a80
mov edx, dword [esp + 0x58]
push fcn.00417f90
push 1
push 0xffffffffffffffff
push esi
push edx
call fcn.0041fc60
add esp, 0x14
movzx eax, byte [esp + 0x34]
mov ecx, dword [esp + 0x58]
push eax
push ecx
call fcn.0041f450
mov edx, dword [esp + 0x38]
push edx
call fcn.00417f90
add esp, 0xc
jmp case.0x420d10.12
push esi
call fcn.0041f850
push edx
push eax
lea eax, [edi + 0x58]
push eax
call fcn.0043a8b0
add esp, 0x10
cmp eax, 7
je 0x4244fd
jmp case.0x420d10.12
mov eax, dword [edx + 0xd8]
test eax, eax
jne 0x4244d4
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x4c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
xor ecx, ecx
mov cx, word [eax + 0x1c]
push eax
add edi, 0x58
push edi
mov dword [esp + 0x20], eax
and ecx, 0xffe4
or ecx, 4
mov word [eax + 0x1c], cx
call fcn.0043a960
add esp, 8
cmp eax, 0x65
jne case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov esi, dword [edi + 0x64]
cmp esi, dword [edi + 0x68]
lea eax, [esi + 1]
mov dword [edi + 0x64], eax
jl 0x423b4d
mov ecx, dword [esp + 0x10]
lea edx, [esi + esi*2 + 3]
shl edx, 3
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x6c]
push edx
push eax
push ecx
call fcn.004205c0
add esp, 0xc
test eax, eax
mov dword [edi + 0x6c], eax
je 0x4244fd
mov eax, dword [edi + 0x6c]
mov ecx, dword [esp + 0x10]
lea edx, [esi + esi*2]
lea eax, [eax + edx*8]
mov edx, dword [ecx + 0x30]
mov dword [eax], edx
mov ecx, dword [ecx + 0x34]
mov dword [eax + 4], ecx
mov edx, dword [edi + 0x104]
mov dword [eax + 8], edx
add edi, 0x58
add eax, 0xc
mov ecx, edi
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
push edi
mov dword [eax + 8], ecx
call fcn.0043a8a0
add esp, 4
jmp case.0x420d10.12
mov edx, dword [edi + 0x64]
dec edx
mov dword [edi + 0x64], edx
mov eax, edx
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x6c]
mov ecx, dword [eax + edx*8]
lea esi, [eax + edx*8]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [esi + 4]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 8]
mov dword [edi + 0x104], eax
add edi, 0x58
push edi
call fcn.0043a9c0
add esp, 4
add esi, 0xc
mov ecx, dword [esi]
mov dword [edi], ecx
mov edx, dword [esi + 4]
mov dword [edi + 4], edx
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
jmp case.0x420d10.12
push esi
call fcn.0041f9b0
mov edi, dword [esp + 0x3c]
push edi
call fcn.0041f9b0
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov ecx, dword [esi + 4]
add esp, 8
cmp ecx, edi
jg case.0x420d10.12
jl 0x423c12
mov edx, dword [esi]
cmp edx, eax
jae case.0x420d10.12
mov dword [esi], eax
mov dword [esi + 4], edi
jmp case.0x420d10.12
mov eax, dword [esi + 4]
test eax, eax
jl case.0x420d10.12
jg 0x423c32
cmp dword [esi], 0
jbe case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [esi + 4]
test eax, eax
jg case.0x420d10.12
jl 0x423c55
cmp dword [esi], 0
jae case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [esi]
or eax, dword [esi + 4]
jne case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov eax, dword [ebx + 8]
mov edx, dword [edi + 0x4c]
movzx esi, byte [ebx + 3]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x24]
lea ecx, [edx + ecx*8]
xor edx, edx
test esi, esi
mov dword [esp + 0x20], eax
jle 0x423cb4
jmp 0x423ca0
mov eax, dword [esp + 0x20]
mov dword [eax + edx*4], ecx
call fcn.004208a0
inc edx
add ecx, 0x28
cmp edx, esi
jl 0x423ca0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea eax, [eax + edx*8]
mov dword [esp + 0x1f8], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x228], eax
inc dword [eax + 0x18]
xor eax, eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x1f8]
mov word [esp + 0x21c], 1
mov dword [esp + 0x210], ecx
mov cl, byte [eax + 3]
test cl, cl
je 0x423d26
mov edx, dword [ebx - 4]
mov dword [esp + 0x230], edx
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x1fc]
push esi
push edx
call dword [eax + 0x14]
mov eax, dword [esp + 0x238]
add esp, 0xc
test eax, eax
je 0x423d72
lea eax, [esp + 0x200]
push 0
push eax
call fcn.00418280
add esp, 4
push eax
add edi, 0xf4
push edi
call fcn.00420730
mov ecx, dword [esp + 0x238]
add esp, 0xc
mov dword [esp + 0xc], ecx
lea edx, [esp + 0x200]
push edx
call fcn.0041f7a0
add esp, 4
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x4c]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push edx
push esi
call fcn.0041f6f0
add esp, 8
cmp eax, 1
mov dword [esp + 0xc], eax
jne 0x423dc4
push 0
push esi
call fcn.00418280
add esp, 4
push eax
add edi, 0xf4
push edi
call fcn.00420730
add esp, 0xc
movzx eax, byte [esp + 0x34]
push eax
push esi
call fcn.0041f450
push esi
call fcn.0041fb80
add esp, 0xc
test eax, eax
jne 0x420e5d
jmp case.0x420d10.12
mov ecx, dword [esp + 0x10]
push ecx
add edi, 0xf4
push edi
call fcn.0043ab40
add esp, 8
mov dword [esp + 0xc], eax
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + edx*8 + 4]
push eax
call fcn.00429b90
add esp, 4
cmp eax, 0x65
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], 0
jmp case.0x420d10.12
mov eax, dword [ebx + 4]
test eax, eax
jne 0x423e58
mov edx, dword [esp + 0x10]
push edx
call fcn.0041ec60
add esp, 4
jmp case.0x420d10.12
mov byte [edi + 0xff], 1
jmp case.0x420d10.12
mov cl, byte [ebx + 0xc]
mov eax, dword [ebx + 4]
mov byte [esp + 0x120], cl
mov edx, dword [esp + 0x120]
mov ecx, dword [ebx + 8]
push edx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.004298b0
add esp, 0xc
cmp eax, 6
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov eax, dword [ebx + 0x10]
push 0
push eax
push str.database_table_is_locked:
add edi, 0xf4
push edi
call fcn.00420730
add esp, 0x10
jmp case.0x420d10.12
mov ecx, dword [ebx + 0x10]
mov edx, dword [esp + 0x10]
push ecx
push edx
call fcn.0042df90
add esp, 8
mov dword [esp + 0xc], eax
jmp case.0x420d10.12
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x10]
add edi, 0xf4
push edi
push eax
push ecx
push edx
call fcn.0042dbf0
add esp, 0x10
mov dword [esp + 0xc], eax
jmp case.0x420d10.12
mov edx, dword [esp + 0x10]
mov byte [edi + 0x101], 2
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 4]
push eax
push ecx
push edx
call fcn.0042ddb0
add esp, 0xc
mov dword [esp + 0xc], eax
mov byte [edi + 0x101], 0
jmp case.0x420d10.12
mov esi, dword [ebx + 0x10]
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], 0
mov eax, dword [esi]
push ecx
push esi
mov dword [esp + 0x30], eax
call dword [eax + 0x18]
add esp, 8
test eax, eax
mov dword [esp + 0xc], eax
jne case.0x420d10.12
mov edx, dword [esp + 0x30]
push eax
mov dword [edx], esi
mov eax, dword [ebx + 4]
push 0xffffffffffffffff
lea ecx, [ebx - 0x14]
mov edx, edi
call fcn.004208f0
mov ecx, dword [esp + 0x38]
add esp, 8
test eax, eax
je 0x423f88
mov dword [eax + 0x60], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [edx]
mov edx, dword [ecx]
mov dword [eax + 0x64], edx
jmp case.0x420d10.12
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
push ecx
mov byte [eax + 0x1e], 1
call dword [edx + 0x1c]
add esp, 4
jmp case.0x420d10.12
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0x4c]
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [edi + 0x30]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x60]
mov dword [esp + 0x60], ecx
mov ecx, dword [edx]
mov edx, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x28]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x24]
xor esi, esi
test edx, edx
mov dword [esp + 0x20], ecx
jle 0x423ff4
lea ecx, [eax + 0x50]
lea ecx, [ecx]
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], ecx
call fcn.004208a0
inc esi
add ecx, 0x28
cmp esi, edx
jl 0x423fe0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x60]
push ecx
push edx
mov byte [edi + 0x101], 1
mov edx, dword [ebx + 0x10]
mov ecx, dword [esi + 0x60]
push edx
mov edx, dword [esp + 0x54]
push eax
push ecx
call dword [edx + 0x20]
add esp, 0x14
test eax, eax
mov dword [esp + 0xc], eax
mov byte [edi + 0x101], 0
jne 0x424045
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x48]
push eax
call dword [ecx + 0x28]
add esp, 4
test eax, eax
je 0x424045
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
mov byte [esi + 0x1c], 0
jmp case.0x420d10.12
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + edx*4]
mov cl, byte [eax + 0x1c]
test cl, cl
jne case.0x420d10.12
mov eax, dword [eax + 0x60]
mov ecx, dword [eax]
mov ecx, dword [ecx]
lea edx, [esp + 0x168]
push edx
push eax
call dword [ecx + 0x30]
mov edx, dword [esp + 0x170]
xor ecx, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov cx, word [eax + 0x1c]
add esp, 8
mov dword [eax], edx
and ecx, 0xffe4
or ecx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x16c]
mov dword [eax + 4], ecx
jmp case.0x420d10.12
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea esi, [eax + edx*8]
mov al, byte [ecx + 0x1c]
test al, al
mov dword [esp + 0x28], ecx
push esi
je 0x4240d9
call fcn.0041fa90
add esp, 4
jmp case.0x420d10.12
mov ecx, dword [ecx + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [esp + 0x64], eax
xor eax, eax
mov ecx, 0x10
lea edi, [esp + 0x23c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x244]
push ecx
call fcn.0041fc30
mov edx, dword [esp + 0x264]
mov eax, dword [ebx + 8]
and edx, 0xffe1
or edx, 1
mov word [esp + 0x264], dx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [edx + 0x60]
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [esp + 0x70]
push eax
call dword [ecx + 0x2c]
movzx edx, byte [esp + 0x48]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x258]
push eax
call fcn.0041f450
lea ecx, [esp + 0x25c]
push ecx
push esi
call fcn.0041fc30
push esi
call fcn.0041fb80
add esp, 0x28
test eax, eax
jne 0x420e5d
jmp case.0x420d10.12
mov eax, dword [edi + 0x30]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
mov al, byte [esi + 0x1c]
test al, al
jne case.0x420d10.12
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx]
mov byte [edi + 0x101], 1
mov ecx, dword [esi + 0x60]
push ecx
mov dword [esp + 0x2c], eax
call dword [eax + 0x24]
add esp, 4
test eax, eax
mov dword [esp + 0xc], eax
mov byte [edi + 0x101], 0
jne 0x4241c4
mov edx, dword [esi + 0x60]
mov eax, dword [esp + 0x28]
push edx
call dword [eax + 0x28]
add esp, 4
test eax, eax
jne case.0x420d10.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x1c], ebx
jmp case.0x420d10.12
mov esi, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov edx, dword [edi + 0x4c]
lea ecx, [ebx + ebx*4]
mov al, byte [edx + ecx*8 + 0x1c]
test al, 0x12
lea ebx, [edx + ecx*8]
jne 0x4241ff
movzx eax, byte [esp + 0x34]
push eax
push ebx
call fcn.0041f610
add esp, 8
test eax, eax
jne 0x4244fd
push esi
call fcn.0042d3a0
mov edx, dword [ebx + 0x14]
mov ecx, dword [esi]
push edx
push esi
call dword [ecx + 0x4c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
push esi
push eax
call fcn.0042d3b0
add esp, 0x14
jmp case.0x420d10.12
mov eax, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov ecx, dword [eax + 0x34]
test ecx, ecx
mov dword [esp + 0x28], eax
jne 0x424260
push 0
push str.read_only_table
add edi, 0xf4
push edi
call fcn.00420730
add esp, 0xc
mov dword [esp + 0xc], 1
jmp case.0x420d10.12
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x20], ecx
lea ecx, [eax + edx*8]
xor edx, edx
test esi, esi
jle 0x424294
lea esp, [esp]
call fcn.004208a0
mov eax, dword [esp + 0x20]
mov dword [eax + edx*4], ecx
add ecx, 0x28
inc edx
cmp edx, esi
jl 0x424280
mov ecx, dword [esp + 0x48]
push ecx
call fcn.0042d3a0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x18c]
push edx
push eax
push esi
mov esi, dword [esp + 0x58]
push esi
call dword [ecx + 0x34]
push esi
mov esi, dword [esp + 0x28]
push esi
mov dword [esp + 0x28], eax
call fcn.0042d3b0
mov eax, dword [ebx + 4]
add esp, 0x1c
test eax, eax
je 0x4242ed
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4242ed
mov edx, dword [esp + 0x188]
mov eax, dword [esp + 0x18c]
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], eax
inc dword [edi + 0x104]
jmp case.0x420d10.12
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je case.0x420d10.12
mov edx, dword [edx + 0x94]
test edx, edx
je case.0x420d10.12
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x98]
push ebx
push eax
call edx
add esp, 8
jmp case.0x420d10.12
mov dword [esp + 0xc], 9
jmp 0x424523
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x74], ecx
mov dword [edi + 0x70], edx
mov eax, dword [ebx + 8]
mov dword [edi + 0x7c], eax
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x424360
push 0
lea ecx, [edi + 0xf4]
push ebx
push ecx
call fcn.00420730
add esp, 0xc
push edi
call fcn.0041ee80
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x424431
mov dword [edi + 0x74], esi
jmp 0x424538
mov edx, dword [edi + 0x54]
mov ecx, dword [edi + 0x4c]
add edx, 2
or edx, 1
mov dword [edi + 0x54], edx
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [edi + 0xf8], esi
mov eax, dword [ebx + 8]
test eax, eax
mov dword [esp + 0x74], 0
jle 0x4243d3
jmp 0x4243b0
push esi
call fcn.0041f5c0
add esp, 4
mov ecx, esi
call fcn.004208a0
mov eax, dword [esp + 0x74]
mov ecx, dword [ebx + 8]
inc eax
add esi, 0x28
cmp eax, ecx
mov dword [esp + 0x74], eax
jl 0x4243b0
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0x1e]
test al, al
jne 0x4244fd
inc dword [edi + 0x50]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [edi + 0x70], eax
mov esi, 0x64
jmp 0x424538
lea ecx, [esp + 0x1a0]
push ecx
call fcn.0041f7a0
add esp, 4
jmp 0x4244fd
mov dword [esp + 0xc], 0x14
jmp 0x4244a3
mov eax, dword [ebx + 8]
test eax, eax
mov esi, dword [esp + 0x10]
je 0x424443
push esi
call fcn.004199e0
add esp, 4
mov byte [esi + 0x1c], 1
mov esi, dword [edi + 0x74]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x424538
mov bl, byte [esp + 0x17]
push edi
mov byte [esi + 0x1c], bl
call fcn.0041ee80
add esp, 4
cmp eax, 5
jne 0x424431
mov edx, dword [esp + 0x1c]
mov al, 1
sub al, bl
mov dword [edi + 0x70], edx
mov byte [esi + 0x1c], al
mov esi, 5
mov dword [edi + 0x74], esi
jmp 0x424538
mov ecx, dword [esp + 0x1c]
mov esi, 5
mov dword [edi + 0x70], ecx
mov dword [edi + 0x74], esi
jmp 0x424538
mov edx, dword [esp + 0x1c]
mov esi, 5
mov dword [edi + 0x70], edx
mov dword [edi + 0x74], esi
jmp 0x424538
mov dword [esp + 0xc], 0xd
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 0x1e]
test cl, cl
je 0x4244b6
mov dword [esp + 0xc], 7
mov ecx, dword [esp + 0xc]
push 0
push ecx
call fcn.00419aa0
add esp, 4
push eax
lea edx, [edi + 0xf4]
push edx
call fcn.00420730
jmp 0x424520
mov eax, 9
push 0
push eax
mov dword [esp + 0x14], eax
mov dword [edi + 0x74], eax
call fcn.00419aa0
add esp, 4
push eax
lea eax, [edi + 0xf4]
push eax
call fcn.00420730
jmp 0x424520
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x10]
push 0
lea eax, [edi + 0xf4]
push str.out_of_memory
push eax
mov byte [edx + 0x1e], 1
call fcn.00420730
mov dword [esp + 0x18], 7
add esp, 0xc
mov ecx, dword [esp + 0xc]
push edi
mov dword [edi + 0x74], ecx
mov esi, 1
call fcn.0041ee80
add esp, 4
mov edx, dword [esp + 0x118]
push edx
call fcn.00435250
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret