Function at 0x47b1d0
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x374
mov eax, dword [0x4e7744]
xor eax, esp
mov dword [esp + 0x370], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
push edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], 0
mov eax, dword [edi + 0x68]
mov esi, dword [edi]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x2c], eax
xor al, al
mov byte [esp + 0x7f], al
mov al, byte [esi + 0x50]
mov byte [esp + 0x74], al
mov byte [esp + 0xac], al
mov byte [esp + 0xb8], al
mov eax, dword [edi + 0x58]
mov dword [esp + 0x30], esi
mov dword [esp + 0x88], 0
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x40], eax
call fcn.0047b130
add esp, 4
cmp dword [esi + 0x160], ebx
je 0x47b26e
mov ecx, dword [esi + 0x168]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
xor eax, eax
jmp 0x47b274
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x28], 7
mov dword [esp + 0x8c], eax
mov dword [esp + 0x7c], ecx
je 0x482f0b
mov dword [edi + 0x28], ebx
mov dword [edi + 0x38], ebx
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x78], ebx
mov dword [esi + 0x1b4], ebx
cmp dword [esi + 0x118], ebx
jne 0x483073
mov eax, dword [edi + 0x24]
mov ecx, dword [esp + 0x68]
fldz
fstp qword [esp + 0x100]
lea eax, [eax + eax*4]
mov dword [esp + 0x120], 0x3e40
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x88], eax
xor eax, eax
mov dl, byte [ecx]
add ebx, 1
mov dword [esp + 0x9c], ebx
adc eax, 0
movzx ebx, dl
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], eax
cmp ebx, 0xad
ja case.0x47b2fa.86
jmp dword [ebx*4 + 0x4830bc]
mov edx, dword [esp + 0x28]
mov ecx, edx
mov ebx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x68]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x68]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
mov ecx, edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 8], 0
jne 0x47b338
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x47b387
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x68]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
mov ecx, dword [ebx + esi*8]
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x68]
mov dword [ebx + esi*8 + 4], edx
lea esi, [ecx + eax*4]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x47b35c
mov ecx, dword [esp + 0x28]
mov eax, 0x66666667
sub ecx, dword [esp + 0x68]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x482828
mov edx, dword [edi + 0xc8]
test edx, edx
je 0x482824
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x2c]
mov dword [edi + 0xc8], eax
dec dword [edi + 0xd0]
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x68], eax
add dword [esi + 0x6c], eax
push edx
call fcn.00483b20
mov edx, dword [edi + 0x68]
mov ecx, eax
mov eax, dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x68], edx
cmp dword [eax + 8], 4
jne 0x47b509
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + eax*4 + 8]
dec ecx
mov eax, dword [edi + 0x58]
mov dword [esp + 0x3c], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x47b573
push ecx
call fcn.0043df70
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x47b5c8
push edx
call fcn.0043df70
add esp, 4
mov edx, eax
jmp 0x47b5d1
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x28]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x47b61f
push ecx
call fcn.0043df70
add esp, 4
mov ecx, eax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
fld qword [eax]
mov eax, dword [esp + 0x34]
fstp qword [ecx]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x2400
test word [edi + 8], ax
je 0x47b672
push edi
call fcn.0043df70
add esp, 4
mov edi, eax
jmp 0x47b67b
mov eax, 4
mov word [edi + 8], ax
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x4c], edx
test edx, edx
jne 0x47b68a
xor ecx, ecx
jmp 0x47b6a3
mov ecx, edx
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47b690
sub ecx, edx
mov edx, dword [esp + 0x4c]
and ecx, 0x3fffffff
cmp byte [esp + 0x70], 1
mov dword [ebx + 4], ecx
je 0x47b7b2
test edx, edx
jne 0x47b6e0
mov eax, 0x2400
test word [edi + 8], ax
je 0x47b6cb
push edi
call fcn.004961d0
add esp, 4
jmp 0x47b6d4
mov eax, 1
mov word [edi + 8], ax
test byte [edi + 8], 2
je 0x47b767
jmp 0x47b749
mov eax, dword [edi + 0x20]
test eax, eax
je 0x47b6ec
mov ebx, dword [eax + 0x70]
jmp 0x47b6f1
mov ebx, 0x3b9aca00
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x47b6f6
sub esi, ecx
mov eax, 0x2400
and esi, 0x7fffffff
test word [edi + 8], ax
jne 0x47b716
cmp dword [edi + 0x18], 0
je 0x47b723
push edi
call fcn.00496190
mov edx, dword [esp + 0x50]
add esp, 4
mov dword [edi + 0x10], edx
mov eax, 0xa02
mov dword [edi + 0x24], 0
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
cmp esi, ebx
jg 0x482ca0
mov esi, dword [esp + 0x2c]
mov al, byte [esp + 0x70]
cmp byte [edi + 0xa], al
je 0x47b767
push dword [esp + 0x70]
push edi
call fcn.004856b0
add esp, 8
test eax, eax
jne 0x482c39
mov ecx, dword [esp + 0x28]
mov eax, 0x800
mov dword [edi + 0x18], 0
or word [edi + 8], ax
cmp byte [ecx + 1], 0xf9
jne 0x47b796
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x47b796
push eax
push esi
call fcn.00455ea0
mov ecx, dword [esp + 0x30]
add esp, 8
mov ebx, dword [esp + 0x28]
mov byte [ecx + 1], 0xf9
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 4], ecx
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x30]
cmp ecx, dword [esi + 0x70]
jg 0x4814dd
mov byte [ebx], 0x47
jmp 0x47b7c8
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x47b7ea
push ecx
call fcn.0043df70
add esp, 4
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x70]
mov byte [ecx + 0xa], al
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x4826a7
mov ebx, dword [esp + 0x3c]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x4826a3
cmp dword [ebx + esi*8 + 4], edx
mov esi, dword [esp + 0x2c]
jne 0x4826a7
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x47b884
push edx
call fcn.0043df70
add esp, 4
mov edx, eax
jmp 0x47b88d
mov eax, 4
mov word [edx + 8], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 8]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
mov dword [edx + 0xc], 0
test edi, edi
jle 0x4826a3
mov eax, 0x2400
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x47b8dd
lea eax, [esi - 8]
push eax
call fcn.004961d0
add esp, 4
mov eax, 0x2400
dec edi
mov word [esi], bx
mov dword [esi + 4], 0
test edi, edi
jg 0x47b8c3
jmp 0x47b350
mov eax, dword [ecx + 4]
mov edx, 0xff41
mov ebx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov edx, 0x2400
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
test word [eax + ecx*8 + 8], dx
lea ebx, [eax + ecx*8]
je 0x47b956
push ebx
call fcn.0043df70
add esp, 4
mov ebx, eax
mov edx, 0x2400
jmp 0x47b95f
mov eax, 4
mov word [ebx + 8], ax
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 4]
test edi, edi
jne 0x47b999
test word [ebx + 8], dx
je 0x47b984
push ebx
call fcn.004961d0
mov al, byte [esp + 0x74]
add esp, 4
mov byte [ebx + 0xa], al
jmp 0x47b350
mov eax, 1
mov word [ebx + 8], ax
mov al, byte [esp + 0x70]
mov byte [ebx + 0xa], al
jmp 0x47b350
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x47b9a5
mov ecx, dword [ecx + 0x70]
jmp 0x47b9aa
mov ecx, 0x3b9aca00
mov eax, 0x10
mov dword [esp + 0x4c], eax
test esi, esi
jns 0x47b9d9
xor esi, esi
test ecx, ecx
js 0x47b9d0
lea ecx, [ecx]
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x47b9d0
add esi, 2
cmp esi, ecx
jle 0x47b9c0
mov eax, 0x210
mov dword [esp + 0x4c], eax
test word [ebx + 8], dx
jne 0x47b9e5
cmp dword [ebx + 0x18], 0
je 0x47b9ee
push ebx
call fcn.00496190
add esp, 4
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x10], edi
or eax, 0x800
mov dword [ebx + 0x24], 0
mov dword [ebx + 0xc], esi
mov word [ebx + 8], ax
mov al, byte [esp + 0x70]
mov byte [ebx + 0xa], al
jmp 0x47b350
mov ebx, dword [esp + 0x28]
mov edi, dword [edi + 0x64]
mov eax, dword [ebx + 4]
lea esi, [eax + eax*4]
movzx eax, word [edi + esi*8 - 0x20]
test al, 0x12
je 0x47ba46
mov ecx, dword [edi + esi*8 - 0x1c]
test eax, 0x4000
je 0x47ba39
add ecx, dword [edi + esi*8 - 0x28]
mov eax, dword [edi + esi*8 - 8]
cmp ecx, dword [eax + 0x70]
jg 0x482ca0
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, 0x2400
test word [ebx + 8], ax
je 0x47ba67
push ebx
call fcn.004961d0
add esp, 4
mov eax, dword [edi + esi*8 - 0x28]
mov ecx, 0xebff
mov dword [ebx], eax
mov eax, dword [edi + esi*8 - 0x24]
mov dword [ebx + 4], eax
mov eax, dword [edi + esi*8 - 0x20]
mov dword [ebx + 8], eax
mov eax, dword [edi + esi*8 - 0x1c]
mov dword [ebx + 0xc], eax
mov eax, dword [edi + esi*8 - 0x18]
mov dword [ebx + 0x10], eax
mov ax, word [ebx + 8]
and ax, cx
mov ecx, 0x840
or ax, cx
mov word [ebx + 8], ax
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x4c], esi
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
jmp 0x47bad0
mov eax, 0x2400
test word [ebx + 8], ax
jne 0x47bae1
cmp dword [ebx + 0x18], 0
je 0x47baea
push ebx
call fcn.00496190
add esp, 4
mov ecx, 0xa
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x4c]
mov eax, 1
mov word [esi + 8], ax
mov dword [esi + 0x18], 0
movzx ecx, word [ebx + 8]
test ecx, 0x1000
je 0x47bb8f
test cl, 0x12
je 0x47bb86
test ecx, 0x4000
je 0x47bb67
mov eax, dword [ebx]
add eax, dword [ebx + 0xc]
test eax, eax
jg 0x47bb33
test cl, 0x10
je 0x47bb67
mov eax, 1
push 1
push eax
push ebx
call fcn.00484d90
add esp, 0xc
test eax, eax
jne 0x482c39
push dword [ebx]
push eax
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 0xc]
push eax
call fcn.004ac5e0
mov eax, dword [ebx]
add esp, 0xc
add dword [ebx + 0xc], eax
mov eax, 0xbdff
and word [ebx + 8], ax
cmp dword [ebx + 0x18], 0
je 0x47bb75
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 0x14]
je 0x47bb86
push ebx
call fcn.00496140
add esp, 4
test eax, eax
jne 0x482c39
mov eax, 0xefff
and word [ebx + 8], ax
add esi, 0x28
add ebx, 0x28
sub dword [esp + 0x48], 1
mov dword [esp + 0x4c], esi
jne 0x47bad0
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x47bbd0
mov eax, 0x2400
test word [esi + 8], ax
je 0x47bbec
push 0x1000
push edi
push esi
call fcn.00494dd0
add esp, 0xc
jmp 0x47bc2b
mov eax, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x800
test word [edi + 8], ax
jne 0x47bc2b
mov ax, word [esi + 8]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [esi + 8], ax
movzx ecx, word [esi + 8]
test ecx, 0x1000
je 0x47bcb3
test cl, 0x12
je 0x47bcaa
test ecx, 0x4000
je 0x47bc8b
mov eax, dword [esi]
add eax, dword [esi + 0xc]
test eax, eax
jg 0x47bc57
test cl, 0x10
je 0x47bc8b
mov eax, 1
push 1
push eax
push esi
call fcn.00484d90
add esp, 0xc
test eax, eax
jne 0x482c39
push dword [esi]
push eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.004ac5e0
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
cmp dword [esi + 0x18], 0
je 0x47bc99
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x14]
je 0x47bcaa
push esi
call fcn.00496140
add esp, 4
test eax, eax
jne 0x482c39
mov eax, 0xefff
and word [esi + 8], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x4826a3
add esi, 0x28
add edi, 0x28
jmp 0x47bbd0
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x47bd18
push 0x1000
push edx
push ecx
call fcn.00494dd0
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [edx]
mov ebx, 0x800
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 8], bx
jne 0x4826f6
mov ax, word [ecx + 8]
mov edx, 0xf3ff
and ax, dx
mov edx, 0x1000
or ax, dx
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x2400
test word [ecx + 8], bx
je 0x47bdbd
push eax
push edx
push ecx
call fcn.004972f0
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [esi + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, edx
mov dword [esp + 0x50], eax
mov ecx, edx
mov al, byte [ebx + 8]
or al, cl
mov dword [esp + 0x60], ecx
test al, 1
je 0x47be45
mov eax, 0x2400
test word [edi + 8], ax
je 0x47be37
push edi
call fcn.004961d0
add esp, 4
jmp 0x47b350
mov eax, 1
mov word [edi + 8], ax
jmp 0x47b350
test cl, 0x12
jne 0x47be79
push 0
push dword [esp + 0x8c]
push esi
call fcn.004855b0
add esp, 0xc
test eax, eax
jne 0x482c39
mov ax, word [esi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x60], eax
jmp 0x47bedf
test ecx, 0x4000
je 0x47bedf
mov eax, dword [esi + 0xc]
add eax, dword [esi]
test eax, eax
jg 0x47be9d
test dl, 0x10
jne 0x47be98
mov eax, dword [esp + 0x50]
movzx ecx, ax
jmp 0x47bed5
mov eax, 1
push 1
push eax
push esi
call fcn.00484d90
add esp, 0xc
test eax, eax
jne 0x482c39
push dword [esi]
push eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0xc]
push eax
call fcn.004ac5e0
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xbdff
and word [esi + 8], ax
movzx ecx, word [esi + 8]
and ecx, 0xfffd
mov dword [esp + 0x60], ecx
movzx edx, word [ebx + 8]
mov dword [esp + 0x48], edx
test dl, 0x12
jne 0x47bf1b
push 0
push dword [esp + 0x8c]
push ebx
call fcn.004855b0
add esp, 0xc
test eax, eax
jne 0x482c39
mov ax, word [ebx + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [esp + 0x48], edx
jmp 0x47bf47
test edx, 0x4000
je 0x47bf47
push ebx
call fcn.00484b40
add esp, 4
test eax, eax
jne 0x482c39
mov ax, word [ebx + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0xc]
add ecx, dword [ebx + 0xc]
mov dword [esp + 0x50], ecx
cmp ecx, dword [eax + 0x70]
jg 0x482ca6
xor eax, eax
cmp edi, ebx
sete al
push eax
lea eax, [ecx + 3]
push eax
push edi
call fcn.00484d90
add esp, 0xc
test eax, eax
jne 0x482c39
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [edi + 8], ax
cmp edi, ebx
je 0x47bfac
push dword [ebx + 0xc]
push dword [ebx + 0x10]
push dword [edi + 0x10]
call fcn.004ac060
mov eax, dword [esp + 0x54]
add esp, 0xc
mov word [ebx + 8], ax
push dword [esi + 0xc]
mov eax, dword [edi + 0x10]
push dword [esi + 0x10]
add eax, dword [ebx + 0xc]
push eax
call fcn.004ac060
mov eax, dword [esp + 0x6c]
add esp, 0xc
mov ecx, dword [esp + 0x50]
mov word [esi + 8], ax
mov eax, dword [edi + 0x10]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 2], 0
mov eax, 0x200
or word [edi + 8], ax
mov al, byte [esp + 0x70]
mov dword [edi + 0xc], ecx
mov byte [edi + 0xa], al
jmp 0x47b350
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov dword [esp + 0x40], edi
test al, 0x2c
je 0x47c01d
mov ebx, eax
jmp 0x47c035
test al, 0x12
je 0x47c033
push edi
call fcn.0042a9e0
mov ecx, dword [esp + 0x40]
add esp, 4
movzx ebx, ax
jmp 0x47c035
xor ebx, ebx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
movzx eax, word [edx + 8]
mov ecx, eax
mov dword [esp + 0x5c], edx
mov esi, eax
and ecx, 0x2c
jne 0x47c06d
test al, 0x12
je 0x47c06b
push edx
call fcn.0042a9e0
movzx ecx, ax
add esp, 4
mov eax, dword [esp + 0x5c]
movzx eax, word [eax + 8]
mov edx, eax
jmp 0x47c071
xor ecx, ecx
mov edx, eax
mov eax, esi
mov edi, dword [esp + 0x3c]
and cl, bl
movzx esi, ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x48], eax
movzx eax, word [edi + 8]
or eax, edx
movzx eax, ax
test cl, 4
je 0x47c2ee
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x40]
mov edi, dword [edi]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
mov eax, dword [esp + 0x28]
mov esi, dword [esi + 4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0xa0], ebx
movzx eax, byte [eax]
add eax, 0xffffff96
mov dword [esp + 0xa4], ecx
cmp eax, 3
ja case.default.0x47c0dc
jmp dword [eax*4 + 0x483374]
push esi
lea eax, [esp + 0xa4]
push edi
push eax
call fcn.0044aa40
add esp, 0xc
test eax, eax
je 0x47c2bb
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
movzx eax, word [edi + 8]
test al, 8
je 0x47c2fb
fld qword [edi]
fstp qword [esp + 0x50]
fld qword [esp + 0x100]
jmp 0x47c33b
test edi, edi
jne 0x47c155
cmp esi, 0x80000000
jne 0x47c155
test ecx, ecx
jg 0x47c0fd
jl 0x47c139
test ebx, ebx
jae 0x47c0fd
add ebx, 0
mov dword [esp + 0xa0], ebx
adc ecx, 0x80000000
mov dword [esp + 0xa4], ecx
jmp 0x47c2bb
neg edi
adc esi, 0
neg esi
jmp case.0x47c0dc.106
test esi, esi
jl 0x47c1c5
jg 0x47c168
test edi, edi
je 0x47c1b3
push esi
push edi
push 0x7fffffff
push 0xffffffffffffffff
call fcn.004aa760
cmp dword [esp + 0x58], edx
jg 0x47c0fd
jl 0x47c186
cmp ebx, eax
ja 0x47c0fd
push esi
push edi
push 0x80000000
push 0
call fcn.004aa760
mov ecx, dword [esp + 0x58]
cmp ecx, edx
jg 0x47c251
jl 0x47c0fd
cmp ebx, eax
jae 0x47c251
jmp 0x47c0fd
test esi, esi
jg 0x47c251
jl 0x47c1c5
test edi, edi
jae 0x47c251
test ecx, ecx
jl 0x47c1fa
jg 0x47c1cf
test ebx, ebx
je 0x47c1f0
push ecx
push ebx
push 0x80000000
push 0
call fcn.004aa760
cmp esi, edx
jg 0x47c24d
jl 0x47c0fd
cmp edi, eax
jae 0x47c24d
jmp 0x47c0fd
test ecx, ecx
jg 0x47c251
jl 0x47c1fa
test ebx, ebx
jae 0x47c251
test edi, edi
jne 0x47c20a
cmp esi, 0x80000000
je 0x47c0fd
test ebx, ebx
jne 0x47c21a
cmp ecx, 0x80000000
je 0x47c0fd
push esi
push edi
push 0x80000000
push 1
call fcn.004aa760
mov ecx, ebx
neg ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x58]
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x47c0fd
jl 0x47c24d
cmp dword [esp + 0x50], eax
ja 0x47c0fd
mov ecx, dword [esp + 0x58]
push esi
push edi
push ecx
push ebx
call fcn.004aa8f0
jmp 0x47c2ad
mov eax, edi
or eax, esi
je 0x47c4c1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x47c27f
test ebx, ebx
jne 0x47c27f
cmp ecx, 0x80000000
je 0x47c0fd
push esi
push edi
push ecx
push ebx
call fcn.004aa760
jmp 0x47c2ad
mov eax, edi
or eax, esi
je 0x47c4c1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x47c2a4
mov edi, 1
xor esi, esi
push esi
push edi
push ecx
push ebx
call fcn.004aa930
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, 0x3e40
mov ax, word [edx + 8]
and ax, cx
or ax, 4
movzx eax, ax
mov word [edx + 8], ax
jmp 0x47b350
test al, 1
jne 0x47c4c1
jmp 0x47c105
test al, 0x24
je 0x47c30e
fild qword [edi]
fstp qword [esp + 0x50]
fld qword [esp + 0x100]
jmp 0x47c33b
test al, 0x12
je 0x47c330
push edi
call fcn.0043b0d0
mov ebx, dword [esp + 0x60]
add esp, 4
fstp qword [esp + 0x50]
fld qword [esp + 0x100]
movzx eax, word [ebx + 8]
jmp 0x47c342
fld qword [esp + 0x100]
fst qword [esp + 0x50]
mov ebx, dword [esp + 0x5c]
movzx eax, si
movzx eax, ax
test al, 8
je 0x47c34f
fstp st(0)
fld qword [ebx]
jmp 0x47c368
test al, 0x24
je 0x47c359
fstp st(0)
fild qword [ebx]
jmp 0x47c368
test al, 0x12
je 0x47c368
fstp st(0)
push ebx
call fcn.0043b0d0
add esp, 4
mov eax, dword [esp + 0x28]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x47c377
jmp dword [eax*4 + 0x483384]
fadd qword [esp + 0x50]
jmp 0x47c477
fsub qword [esp + 0x50]
jmp 0x47c477
fmul qword [esp + 0x50]
jmp 0x47c477
fld qword [esp + 0x100]
fld qword [esp + 0x50]
fucomi st(1)
fstp st(1)
lahf
test ah, 0x44
jnp 0x47c4bd
fdivp st(1)
jmp 0x47c477
movzx eax, word [edi + 8]
fstp st(0)
test al, 0x24
je 0x47c3ca
mov esi, dword [edi]
mov edi, dword [edi + 4]
jmp 0x47c401
test al, 8
je 0x47c3e4
fld qword [edi]
sub esp, 8
fstp qword [esp]
call fcn.0042d8f0
add esp, 8
mov esi, eax
mov edi, edx
jmp 0x47c401
test al, 0x12
je 0x47c3fd
cmp dword [edi + 0x10], 0
je 0x47c3fd
push edi
call fcn.0043b090
add esp, 4
mov esi, eax
mov edi, edx
jmp 0x47c401
xor esi, esi
xor edi, edi
movzx eax, word [ebx + 8]
test al, 0x24
je 0x47c410
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x47c443
test al, 8
je 0x47c428
fld qword [ebx]
sub esp, 8
fstp qword [esp]
call fcn.0042d8f0
add esp, 8
mov ecx, eax
jmp 0x47c443
test al, 0x12
je 0x47c43f
cmp dword [ebx + 0x10], 0
je 0x47c43f
push ebx
call fcn.0043b090
add esp, 4
mov ecx, eax
jmp 0x47c443
xor ecx, ecx
xor edx, edx
mov eax, esi
or eax, edi
je 0x47c4c1
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x47c459
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.004aa930
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], edx
fild qword [esp + 0x1b8]
fst qword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x47c49b
mov eax, dword [esp + 0x50]
and ecx, 0xfffff
or eax, ecx
jne 0x47c4bf
mov edx, dword [esp + 0x48]
mov ecx, 0x3e40
fstp qword [edx]
mov ax, word [edx + 8]
and ax, cx
or ax, 8
movzx eax, ax
mov word [edx + 8], ax
jmp 0x47b350
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x48]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x47c4de
push eax
call fcn.004961d0
add esp, 4
jmp 0x47b350
mov ecx, 1
mov word [eax + 8], cx
jmp 0x47b350
mov eax, dword [ecx + 4]
test eax, eax
je 0x47b35c
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, 0x2400
test word [eax + 8], dx
je 0x47c530
push 0
push 0
push eax
call fcn.004972f0
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov dword [eax], 0
mov edx, 4
mov dword [eax + 4], 0
mov word [eax + 8], dx
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [ebx + 8]
or al, dl
mov dword [esp + 0x48], esi
test al, 1
je 0x47c5e0
mov eax, 0x2400
test word [esi + 8], ax
je 0x47c5bc
push esi
call fcn.004961d0
mov esi, dword [esp + 0x30]
add esp, 4
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [esp + 0x28]
mov eax, 1
mov word [esi + 8], ax
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, edx
test al, 0x24
je 0x47c5ed
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
jmp 0x47c624
test al, 8
je 0x47c607
fld qword [ecx]
sub esp, 8
fstp qword [esp]
call fcn.0042d8f0
add esp, 8
mov edi, eax
mov esi, edx
jmp 0x47c624
test al, 0x12
je 0x47c620
cmp dword [ecx + 0x10], 0
je 0x47c620
push ecx
call fcn.0043b090
add esp, 4
mov edi, eax
mov esi, edx
jmp 0x47c624
xor edi, edi
xor esi, esi
push ebx
call fcn.004185c0
mov ebx, eax
add esp, 4
mov eax, dword [esp + 0x28]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x47c643
and edi, ebx
and esi, edx
jmp 0x47c6f8
cmp cl, 0x67
jne 0x47c651
or edi, ebx
or esi, edx
jmp 0x47c6f8
mov eax, ebx
or eax, edx
je 0x47c6f8
test edx, edx
jg 0x47c689
jl 0x47c665
test ebx, ebx
jae 0x47c67e
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x47c689
jg 0x47c677
cmp ebx, 0xffffffc0
jbe 0x47c689
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x47c6a5
jg 0x47c689
cmp ebx, 0x40
jb 0x47c6a5
test esi, esi
jg 0x47c69f
jl 0x47c693
test edi, edi
jae 0x47c69f
cmp cl, 0x68
je 0x47c69f
or edi, 0xffffffff
or esi, edi
jmp 0x47c6f8
xor edi, edi
xor esi, esi
jmp 0x47c6f8
cmp cl, 0x68
mov eax, edi
mov edx, esi
mov ecx, ebx
jne 0x47c6bb
call fcn.004aa9f0
mov ecx, eax
mov eax, edx
jmp 0x47c6f4
call fcn.004aaba0
mov ecx, eax
mov eax, edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
test esi, esi
jg 0x47c6f4
jl 0x47c6d6
test edi, edi
jae 0x47c6f4
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.004aa9f0
mov ecx, dword [esp + 0x50]
or ecx, eax
mov eax, dword [esp + 0x4c]
or eax, edx
mov edi, ecx
mov esi, eax
mov ecx, dword [esp + 0x48]
mov edx, 0x3e40
mov dword [ecx], edi
mov dword [ecx + 4], esi
mov ax, word [ecx + 8]
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00484ef0
mov eax, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x34]
adc dword [esi + 4], edx
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x47c7bf
test al, 8
jne 0x47c78c
test al, 2
je 0x47c795
push 1
push esi
call fcn.004232f0
add esp, 8
jmp 0x47c795
push esi
call fcn.00484100
add esp, 4
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x47c7bf
mov esi, dword [esp + 0x28]
cmp dword [esi + 8], 0
jne 0x47b33c
mov edx, 0x14
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x2c]
jmp 0x4828fe
mov eax, dword [esp + 0x34]
and ecx, 0x3e40
or ecx, 4
mov word [esi + 8], cx
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x24
lea eax, [edx + eax*8]
je 0x47b35c
push eax
call fcn.00485070
mov ecx, dword [esp + 0x2c]
add esp, 4
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x47c852
push esi
call fcn.00484b40
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov eax, dword [esp + 0x28]
push dword [esp + 0x88]
movzx eax, byte [eax + 8]
push eax
push esi
call fcn.004849b0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x44], edx
lea eax, [eax + eax*4]
movzx edi, word [ecx + eax*8 + 8]
lea ecx, [ecx + eax*8]
movzx eax, word [edx + 8]
mov si, di
movzx edx, si
mov dword [esp + 0x5c], ecx
mov ecx, edi
mov dword [esp + 0x50], edx
mov edx, ecx
or edx, eax
mov dword [esp + 0x58], eax
movzx ebx, ax
mov dword [esp + 0x40], ecx
test dl, 1
je 0x47c985
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 2]
test al, al
jns 0x47c940
mov al, byte [esp + 0x40]
and al, byte [esp + 0x58]
test al, 1
je 0x47c92f
test ecx, 0x100
jne 0x47c92f
mov eax, dword [esp + 0x28]
xor ecx, ecx
movzx edx, byte [eax]
mov eax, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
movzx eax, ax
mov dword [esp + 0x40], eax
mov si, ax
mov al, byte [edx + 0x4cff94]
jmp 0x47cb4d
not ecx
and ecx, 1
lea ecx, [ecx*2 - 1]
jmp 0x47cafe
test al, 0x20
je 0x47c978
mov eax, dword [esp + 0x28]
mov edx, 0x3e40
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x84], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
jmp 0x47b350
test al, 0x10
jne 0x47b338
jmp 0x47b350
mov ebx, dword [esp + 0x28]
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jb 0x47ca4e
mov ecx, edi
mov edi, dword [esp + 0x44]
test dl, 2
je 0x47c9ed
mov al, byte [esp + 0x58]
and al, 0x2e
cmp al, 2
jne 0x47c9c7
push 0
push edi
call fcn.004232f0
mov edx, dword [esp + 0x64]
add esp, 8
movzx eax, word [edx + 8]
mov dword [esp + 0x40], eax
mov si, ax
jmp 0x47c9cb
mov edx, dword [esp + 0x5c]
mov al, byte [esp + 0x40]
and al, 0x2e
movzx ecx, si
cmp al, 2
jne 0x47c9ed
push 0
push edx
call fcn.004232f0
mov edx, dword [esp + 0x64]
add esp, 8
movzx ecx, word [edx + 8]
jmp 0x47c9f1
mov edx, dword [esp + 0x5c]
mov al, byte [edi + 8]
and al, cl
test al, 4
je 0x47cae9
mov eax, dword [esp + 0x44]
mov ecx, dword [edx + 4]
mov edi, dword [edx]
mov edx, dword [eax]
mov eax, dword [eax + 4]
cmp ecx, eax
jl 0x47ca2d
jg 0x47ca16
cmp edi, edx
jbe 0x47ca23
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x47cb47
cmp ecx, eax
jg 0x47ca3e
jl 0x47ca2d
cmp edi, edx
jae 0x47ca3e
movzx edx, byte [ebx]
or ecx, 0xffffffff
mov al, byte [edx + 0x4cff8c]
jmp 0x47cb4d
movzx edx, byte [ebx]
xor ecx, ecx
mov al, byte [edx + 0x4cff94]
jmp 0x47cb4d
cmp al, 0x42
jne 0x47cae9
mov al, byte [esp + 0x58]
test al, 2
jne 0x47cab1
test al, 0x2c
je 0x47cab1
mov edi, dword [esp + 0x44]
push 1
push dword [esp + 0x8c]
push edi
call fcn.004855b0
mov cx, word [esp + 0x64]
mov edx, edi
mov ebx, dword [esp + 0x68]
mov edi, 0x3e40
add esp, 0xc
mov ax, word [edx + 8]
xor ax, cx
and ax, di
xor cx, ax
mov word [esp + 0x58], cx
cmp edx, ebx
jne 0x47caba
mov eax, dword [esp + 0x58]
or eax, 2
movzx eax, ax
mov dword [esp + 0x40], eax
mov si, ax
jmp 0x47caba
mov ebx, dword [esp + 0x5c]
mov edi, 0x3e40
mov al, byte [esp + 0x40]
test al, 2
jne 0x47cae5
test al, 0x2c
je 0x47cae5
push 1
push dword [esp + 0x8c]
push ebx
call fcn.004855b0
mov ax, word [ebx + 8]
add esp, 0xc
xor ax, si
and ax, di
xor si, ax
mov ebx, dword [esp + 0x28]
push dword [ebx + 0x10]
push dword [esp + 0x48]
push dword [esp + 0x64]
call fcn.00467330
add esp, 0xc
mov ecx, eax
mov edx, dword [esp + 0x28]
mov edi, ecx
movzx eax, word [esp + 0x58]
movzx ebx, si
movzx edx, byte [edx]
test ecx, ecx
jns 0x47cb1f
mov ebx, dword [esp + 0x28]
mov al, byte [edx + 0x4cff8c]
jmp 0x47cb4d
mov dword [esp + 0x58], eax
mov eax, ebx
mov dword [esp + 0x40], eax
mov ecx, edi
test edi, edi
jne 0x47cb3e
mov ebx, dword [esp + 0x28]
mov si, ax
mov al, byte [edx + 0x4cff94]
jmp 0x47cb4d
mov si, word [esp + 0x40]
mov ebx, dword [esp + 0x28]
mov al, byte [edx + 0x4cff9c]
mov edi, dword [esp + 0x44]
movzx edx, al
mov eax, dword [esp + 0x5c]
mov word [eax + 8], si
mov ax, word [esp + 0x58]
mov word [edi + 8], ax
movzx ebx, word [ebx + 2]
test bl, 0x20
je 0x47cbc1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x84], ecx
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
test bl, 8
je 0x47cb98
mov ecx, dword [esp + 0x28]
xor eax, eax
cmp byte [ecx], 0x35
sete al
cmp eax, edx
je 0x4826db
mov ebx, dword [esp + 0x3c]
mov eax, 0x3e40
mov cx, word [ebx + esi*8 + 8]
and cx, ax
mov eax, edx
or cx, 4
cdq
mov word [ebx + esi*8 + 8], cx
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x47b350
test edx, edx
jne 0x47b338
jmp 0x47b350
cmp dword [esp + 0x84], 0
jne 0x47b338
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
test byte [esi + 2], 1
jne 0x47cbf9
xor eax, eax
jmp 0x47cbff
mov eax, dword [esi - 4]
add eax, 4
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x60], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x80], ebx
test ecx, ecx
jle 0x47b463
lea ebx, [edx + 0x14]
nop
test eax, eax
je 0x47cc39
mov edi, dword [eax + esi*4]
jmp 0x47cc3b
mov edi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x3c]
push dword [ebx]
movzx eax, byte [esi + eax]
and eax, 1
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x84]
add eax, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov eax, dword [esp + 0x68]
add eax, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00467330
mov edx, eax
add esp, 0xc
mov dword [esp + 0x84], edx
test edx, edx
jne 0x47cc98
mov eax, dword [esp + 0x4c]
inc esi
mov edx, dword [esp + 0x48]
add ebx, 4
cmp esi, dword [esp + 0x50]
jl 0x47cc30
jmp 0x47b350
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x47ccd5
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x3c]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
jne 0x47cccc
mov eax, dword [esp + 0x80]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
je 0x47ccd5
neg edx
mov dword [esp + 0x84], edx
cmp dword [esp + 0x6c], 0
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
je 0x4826af
mov edi, dword [esp + 0x30]
neg edx
mov dword [esp + 0x84], edx
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x28]
test eax, eax
jns 0x47cd3a
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x68]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
jne 0x47cd5f
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x68]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x68]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
push 2
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0047a5a0
mov ecx, dword [ebx + 8]
mov esi, eax
mov ebx, dword [esp + 0x44]
push 2
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
push ecx
call fcn.0047a5a0
mov ecx, dword [esp + 0x38]
add esp, 0x10
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x47cdca
mov dl, byte [esi + eax + 0x4cffd8]
jmp 0x47cdd1
mov dl, byte [esi + eax + 0x4cffe4]
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x47ce10
mov ax, word [ebx + ecx*8 + 8]
mov edx, 0x3e40
mov esi, dword [esp + 0x2c]
and ax, dx
or ax, 1
movzx eax, ax
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x2c]
movzx eax, dl
cdq
mov dword [ebx + ecx*8], eax
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0x3e40
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0047a5a0
mov ecx, dword [esp + 0x30]
add esp, 8
xor eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
cdq
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov ebx, 0x2400
test word [ecx + 8], bx
je 0x47ceaa
push edx
push eax
push ecx
call fcn.004972f0
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
lea ecx, [ebx + eax*8]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x47c58d
push 0
push ecx
call fcn.0047a5a0
add esp, 8
mov ecx, 0x2400
neg eax
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x47cf36
push 0
push eax
push esi
call fcn.004972f0
mov esi, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [esp + 0x28]
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 8], ax
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x47cf93
push esi
call fcn.004961d0
add esp, 4
jmp 0x47cf9c
mov eax, 1
mov word [esi + 8], ax
test byte [edi + 8], 1
jne 0x4826a3
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004185c0
not eax
not edx
mov dword [esi], eax
add esp, 4
mov dword [esi + 4], edx
jmp 0x47b350
mov edi, dword [edi + 0xc8]
test edi, edi
je 0x47d036
mov ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esp + 0x28]
mov edi, dword [edi + 0x18]
sub ecx, dword [ebx + 0x68]
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x47b338
bts edx, ecx
mov byte [esi + edi], dl
mov edi, ebx
mov ecx, dword [ebx + 0x68]
mov esi, dword [esp + 0x2c]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov ecx, dword [edx + 0x68]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x47b338
mov ecx, edi
mov edi, edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0047a5a0
add esp, 8
test eax, eax
jne 0x47b338
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
xor eax, eax
mov ecx, dword [esp + 0x3c]
cmp dword [edx + 0xc], eax
sete al
push eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0047a5a0
add esp, 8
test eax, eax
je 0x47b338
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne 0x47b338
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x47b338
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x47b467
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x47d172
push eax
call fcn.004961d0
add esp, 4
jmp 0x47b338
mov ecx, 1
mov word [eax + 8], cx
jmp 0x47b338
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x48], ebx
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x58], edi
cmp byte [edi + 3], 0
je 0x47d230
mov eax, dword [edi + 0x20]
test eax, eax
je 0x47d228
mov eax, dword [eax + ebx*4 + 4]
test eax, eax
je 0x47d228
cmp byte [edi + 2], 0
jne 0x47d228
mov edi, dword [edi + 0x2c]
lea ebx, [eax - 1]
mov dword [esp + 0x58], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov esi, dword [edi + 0x50]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x60], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0x24]
mov dword [esp + 0x40], ecx
cmp eax, dword [edx + 0x20]
je 0x47d357
cmp byte [edi + 2], 0
je 0x47d293
cmp byte [edi], 3
jne 0x47d254
mov eax, dword [edi + 0x28]
mov edx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
mov ecx, dword [edx + ecx*8 + 0x10]
mov dword [edi + 0x54], ecx
jmp 0x47d2e1
push edi
call fcn.00483aa0
jmp 0x47d23e
mov eax, dword [edi + 0x30]
cmp byte [eax], 0
je 0x47d1c5
push edi
call fcn.00437f40
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
jmp 0x47d1cd
mov eax, 0x2400
test word [ecx + 8], ax
je 0x47d26d
push ecx
call fcn.004961d0
add esp, 4
jmp 0x47b350
mov eax, 1
mov word [ecx + 8], ax
mov esi, dword [esp + 0x2c]
mov edi, edx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [edi + 0x30]
push esi
call fcn.004370b0
mov edx, dword [esi + 0x2c]
add esp, 4
mov dword [edi + 0x58], edx
mov eax, dword [esi + 0x74]
movzx ecx, word [esi + 0x30]
mov eax, dword [eax + 0x3c]
sub eax, dword [esi + 0x28]
cmp ecx, eax
jle 0x47d2c7
test eax, eax
mov dword [esp + 0x50], 0
mov ecx, eax
cmovs ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x5c], ecx
mov ecx, dword [esi + 0x28]
mov dword [edi + 0x54], ecx
cmp edx, dword [eax + 0x70]
ja 0x482ca6
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
mov dword [edi + 0x24], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x47d2fa
movzx eax, al
mov dword [esi], eax
mov al, 1
jmp 0x47d304
push esi
push ecx
call fcn.00462c70
add esp, 8
movzx edx, al
lea ecx, [edi + 0x42]
xor eax, eax
mov dword [edi + 0x38], edx
mov word [ecx], ax
mov eax, dword [esi]
mov dword [esp + 0x5c], ecx
cmp dword [edi + 0x5c], eax
jae 0x47d346
mov dword [edi + 0x54], 0
mov dword [edi + 0x5c], 0
mov eax, dword [esi]
cmp eax, 0x18003
ja 0x47d5a5
mov dword [esp + 0x5c], ecx
cmp eax, dword [edi + 0x58]
jbe 0x47d35e
jmp 0x47d5a5
mov ebx, dword [edi + 0x54]
xor ecx, ecx
mov dword [esp + 0x80], ebx
jmp 0x47d41e
lea ecx, [edi + 0x42]
mov dword [esp + 0x5c], ecx
movzx ecx, word [ecx]
cmp ecx, ebx
ja 0x47d674
mov edx, dword [edi + 0x38]
mov eax, dword [esi]
cmp edx, eax
jae 0x47d5c2
mov ebx, dword [edi + 0x54]
mov dword [esp + 0x80], ebx
test ebx, ebx
jne 0x47d40f
xor eax, eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
lea eax, [esp + 0x160]
push eax
push dword [esi]
push dword [edi + 0x30]
call fcn.00484d30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x170]
mov edx, dword [edi + 0x38]
mov dword [esp + 0x80], ebx
movzx ecx, word [eax]
mov eax, dword [esi]
jmp 0x47d41e
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x80]
add eax, ebx
movzx ecx, cx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x50], ecx
mov edi, dword [esi + ecx*4]
lea esi, [edx + ebx]
mov dword [esp + 0x44], 0
lea eax, [eax + ecx*4]
add eax, 0x60
mov dword [esp + 0x4c], eax
jmp 0x47d450
movzx ebx, byte [esi]
mov dword [esp + 0xb0], ebx
mov dword [eax], ebx
cmp ebx, 0x80
jae 0x47d475
movzx eax, byte [ebx + 0x4cf090]
inc esi
cdq
add edi, eax
adc dword [esp + 0x44], edx
jmp 0x47d4bf
lea eax, [esp + 0xb0]
push eax
push esi
call fcn.00462c70
mov ebx, dword [esp + 0xb8]
add esp, 8
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x4c]
mov dword [eax], ebx
cmp ebx, 0x80
jb 0x47d4a7
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x47d4ae
movzx eax, byte [ebx + 0x4cf090]
mov edx, dword [esp + 0x44]
add edi, eax
mov ecx, dword [esp + 0x50]
adc edx, 0
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x60]
inc ecx
mov eax, dword [esp + 0x4c]
add eax, 4
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
mov dword [edx + ecx*4], edi
mov edx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x48]
ja 0x47d4f0
cmp esi, dword [esp + 0x6c]
jb 0x47d450
mov eax, dword [esp + 0x6c]
jmp 0x47d4f8
mov eax, dword [esp + 0x6c]
cmp esi, eax
jb 0x47d558
cmp esi, eax
mov eax, dword [esp + 0x58]
ja 0x47d567
cmp edi, dword [eax + 0x58]
jne 0x47d567
test edx, edx
jne 0x47d567
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
sub esi, dword [esp + 0x80]
mov word [eax], cx
mov dword [edi + 0x38], esi
cmp dword [edi + 0x54], 0
jne 0x47d54f
test dword [esp + 0x168], 0x2400
jne 0x47d53b
cmp dword [esp + 0x178], 0
je 0x47d54f
lea eax, [esp + 0x160]
push eax
call fcn.00496190
mov eax, dword [esp + 0x60]
add esp, 4
movzx eax, word [eax]
mov esi, dword [esp + 0x60]
jmp 0x47d5cd
test edx, edx
jb 0x47d509
mov eax, dword [esp + 0x58]
ja 0x47d567
cmp edi, dword [eax + 0x58]
jbe 0x47d509
mov ecx, dword [esp + 0x60]
cmp dword [ecx], 0
jne 0x47d578
mov esi, dword [esp + 0x6c]
xor ecx, ecx
jmp 0x47d509
cmp dword [eax + 0x54], 0
jne 0x47d5a5
test dword [esp + 0x168], 0x2400
jne 0x47d595
cmp dword [esp + 0x178], 0
je 0x47d5a5
lea eax, [esp + 0x160]
push eax
call fcn.00496190
add esp, 4
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4828e3
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
jmp 0x47b34c
xor ebx, ebx
mov eax, ecx
mov dword [esp + 0xb0], ebx
movzx eax, ax
cmp eax, dword [esp + 0x48]
ja 0x47d67f
mov eax, dword [esp + 0x28]
cmp byte [eax + 1], 0xf5
jne 0x47d66b
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + 0x10]
mov eax, 0x2400
test word [edx + 8], ax
je 0x47d60e
push 0x800
push ecx
push edx
call fcn.00494dd0
add esp, 0xc
jmp 0x47b350
mov eax, dword [ecx]
mov ebx, 0x800
mov esi, dword [esp + 0x2c]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
test word [ecx + 8], bx
jne 0x4826a7
mov ax, word [edx + 8]
mov ecx, 0xebff
mov edi, dword [esp + 0x30]
and ax, cx
mov ecx, dword [esp + 0x28]
or ax, bx
mov word [edx + 8], ax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esp + 0x40]
jmp 0x47c4c5
mov ebx, dword [edi + ebx*4 + 0x60]
mov dword [esp + 0xb0], ebx
mov ecx, dword [esp + 0x40]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x47d69b
push ecx
call fcn.004961d0
mov ecx, dword [esp + 0x44]
add esp, 4
mov edx, dword [esp + 0x48]
mov eax, dword [edi + 0x5c]
cmp eax, dword [esi + edx*4 + 4]
jb 0x47d73c
mov edi, dword [edi + 0x54]
add edi, dword [esi + edx*4]
cmp ebx, 0xc
jae 0x47d6c7
push ecx
push ebx
push edi
call fcn.004867f0
add esp, 0xc
jmp 0x47b350
mov al, byte [esp + 0x70]
lea esi, [ebx - 0xc]
shr esi, 1
mov dword [ecx + 0xc], esi
mov byte [ecx + 0xa], al
lea eax, [esi + 2]
cmp dword [ecx + 0x18], eax
jge 0x47d704
push 0
push eax
mov edx, 1
push ecx
mov word [ecx + 8], dx
call fcn.00484d90
add esp, 0xc
test eax, eax
jne 0x482c39
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x10]
jmp 0x47d70a
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push eax
call fcn.004ac060
mov ecx, dword [esp + 0x4c]
add esp, 0xc
and ebx, 1
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov ax, word [ebx*2 + 0x4d0030]
mov word [ecx + 8], ax
jmp 0x47b350
mov al, byte [esp + 0x70]
mov byte [ecx + 0xa], al
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x47d75d
cmp ebx, 0xc
jb 0x47d759
test bl, 1
je 0x47d777
test al, al
js 0x47d777
cmp ebx, 0x80
jb 0x47d76c
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x47d773
movzx eax, byte [ebx + 0x4cf090]
test eax, eax
jne 0x47d78b
push ecx
push ebx
push 0x4cf218
call fcn.004867f0
add esp, 0xc
jmp 0x47b350
push ecx
push eax
push dword [esi + edx*4]
push dword [edi + 0x30]
call fcn.00484c60
mov edx, eax
add esp, 0x10
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov esi, dword [esp + 0x40]
push esi
push ebx
push dword [esi + 0x10]
call fcn.004867f0
mov eax, 0xefff
add esp, 0xc
and word [esi + 8], ax
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [ebx]
push dword [esp + 0x88]
mov byte [esp + 0xec], al
push dword [esp + 0xec]
push esi
call fcn.00423280
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x47d85a
movzx ecx, word [esi + 8]
mov edx, ecx
test cl, 4
je 0x47d85a
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x1d0], edi
add edi, 0
mov dword [esp + 0x1d4], eax
adc eax, 0x8000
cmp eax, 0xffff
ja 0x47d844
jb 0x47d835
cmp edi, 0xffffffff
ja 0x47d844
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 8], cx
jmp 0x47d85a
fild qword [esp + 0x1d0]
and edx, 0xfffb
or edx, 8
fstp qword [esi]
mov word [esi + 8], dx
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x4826a3
add esi, 0x28
jmp 0x47d7de
mov esi, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x44], edx
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x10]
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esi + 8]
mov dword [esp + 0x50], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30]
mov al, byte [eax + 0x93]
mov byte [esp + 0x67], al
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x6c], eax
test edi, edi
je 0x47d927
mov al, byte [edi]
lea esi, [ecx + 8]
mov ebx, dword [esp + 0x88]
mov byte [esp + 0xf0], al
push ebx
push dword [esp + 0xf4]
lea eax, [esi - 8]
push eax
call fcn.00423280
add esp, 0xc
cmp byte [edi], 0x45
jne 0x47d90f
movzx eax, word [esi]
test al, 4
je 0x47d90f
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
mov byte [esp + 0xf0], al
test al, al
jne 0x47d8e4
mov ebx, dword [esp + 0x5c]
mov edx, ebx
mov eax, dword [esp + 0x4c]
add eax, 0x1c
movzx ecx, word [eax - 0x14]
mov dword [esp + 0x58], eax
test cl, 1
je 0x47d954
and ecx, 0x4000
neg ecx
sbb ecx, ecx
and ecx, 0xa
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
inc ecx
jmp 0x47dbbe
test cl, 0x24
je 0x47db0f
mov edi, dword [eax - 0x18]
mov edx, dword [eax - 0x1c]
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], edi
test edi, edi
jg 0x47d985
jl 0x47d97b
test edx, edx
jae 0x47d985
mov esi, edx
mov eax, edi
not esi
not eax
jmp 0x47d989
mov esi, edx
mov eax, edi
inc dword [esp + 0x40]
test eax, eax
ja 0x47da85
jb 0x47d99c
cmp esi, 0x7f
ja 0x47d9eb
mov eax, edx
xor ecx, ecx
and eax, 1
cmp eax, edx
jne 0x47d9c8
cmp ecx, edi
jne 0x47d9c8
cmp byte [esp + 0x67], 4
jb 0x47d9c8
mov ecx, dword [esp + 0x40]
lea eax, [esi + 8]
mov esi, dword [esp + 0x58]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
mov esi, dword [esp + 0x58]
add ebx, 1
mov eax, 1
mov dword [esp + 0x5c], ebx
adc dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x40]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
test eax, eax
ja 0x47da85
jb 0x47d9fd
cmp esi, 0x7fff
ja 0x47da21
mov esi, dword [esp + 0x58]
add ebx, 2
mov ecx, dword [esp + 0x40]
mov eax, 2
adc dword [esp + 0x44], 0
mov dword [esp + 0x5c], ebx
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
test eax, eax
ja 0x47da85
jb 0x47da2f
cmp esi, 0x7fffff
ja 0x47da53
mov esi, dword [esp + 0x58]
add ebx, 3
mov ecx, dword [esp + 0x40]
mov eax, 3
adc dword [esp + 0x44], 0
mov dword [esp + 0x5c], ebx
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
test eax, eax
ja 0x47da85
jb 0x47da61
cmp esi, 0x7fffffff
ja 0x47da85
mov esi, dword [esp + 0x58]
add ebx, 4
mov ecx, dword [esp + 0x40]
mov eax, 4
adc dword [esp + 0x44], 0
mov dword [esp + 0x5c], ebx
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
cmp eax, 0x7fff
ja 0x47dab7
jb 0x47da93
cmp esi, 0xffffffff
ja 0x47dab7
mov esi, dword [esp + 0x58]
add ebx, 6
mov ecx, dword [esp + 0x40]
mov eax, 5
adc dword [esp + 0x44], 0
mov dword [esp + 0x5c], ebx
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
add ebx, 8
mov dword [esp + 0x5c], ebx
adc dword [esp + 0x44], 0
test cl, 0x20
je 0x47daf7
mov esi, dword [esp + 0x58]
and ecx, 0xffdf
fild qword [esp + 0x1c0]
or ecx, 8
mov eax, 7
fstp qword [esi - 0x1c]
mov word [esi - 0x14], cx
mov ecx, dword [esp + 0x40]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
mov esi, dword [esp + 0x58]
mov eax, 6
mov ecx, dword [esp + 0x40]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x47dbc2
test cl, 8
je 0x47db32
mov ecx, dword [esp + 0x40]
inc ecx
mov dword [eax], 7
add ebx, 8
mov dword [esp + 0x5c], ebx
adc edx, 0
mov dword [esp + 0x44], edx
jmp 0x47dbbe
mov edi, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
lea ebx, [edi + 6]
lea ebx, [eax + ebx*2]
test ecx, 0x4000
je 0x47db7e
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
add esi, 0xffffffe4
or eax, edx
mov ecx, dword [esi]
lea ebx, [ebx + ecx*2]
je 0x47db73
push esi
call fcn.00484b40
add esp, 4
test eax, eax
jne 0x482c39
add edi, dword [esi]
jmp 0x47db7e
mov eax, ecx
cdq
add dword [esp + 0x48], eax
adc dword [esp + 0x60], edx
add dword [esp + 0x5c], edi
mov edx, ebx
mov esi, 1
adc dword [esp + 0x44], 0
xor ecx, ecx
shr edx, 7
mov eax, edx
or eax, ecx
je 0x47dbae
lea esp, [esp]
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x47dba0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
add ecx, esi
mov dword [eax], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x40], ecx
add eax, 0xffffffe4
cmp eax, dword [esp + 0x50]
je 0x47dbdb
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x44]
sub eax, 0x28
jmp 0x47d92e
cmp ecx, 0x7e
jle 0x47dc3a
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x47dc05
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x47dbf7
mov eax, dword [esp + 0x40]
mov edi, 1
add eax, ebx
mov dword [esp + 0x40], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x47dc32
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x47dc24
mov ecx, dword [esp + 0x40]
cmp ebx, edi
jge 0x47dc3f
inc ecx
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x5c]
mov eax, ecx
mov esi, dword [esp + 0x6c]
cdq
add edi, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x44]
mov ebx, edx
mov esi, dword [esi + 0x18]
adc eax, ebx
mov ecx, edi
add ecx, dword [esp + 0x48]
adc eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
mov eax, esi
cdq
cmp dword [esp + 0x44], edx
jg 0x47dc7b
jl 0x47dcb8
cmp ecx, eax
jbe 0x47dcb8
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x70]
cdq
cmp dword [esp + 0x44], edx
jg 0x482ca0
jl 0x47dc97
cmp ecx, eax
ja 0x482ca0
cmp esi, edi
jge 0x47dcb8
push 0
push edi
push dword [esp + 0x74]
call fcn.00484d90
add esp, 0xc
test eax, eax
jne 0x482c39
mov edx, dword [esp + 0x6c]
jmp 0x47dcc2
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
mov ecx, dword [esp + 0x48]
mov eax, 0x10
mov dword [edx + 0xc], edi
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x60]
je 0x47dce5
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov ecx, dword [esp + 0x40]
mov edi, dword [edx + 0x10]
lea eax, [edi + ecx]
mov dword [esp + 0x48], eax
cmp ecx, 0x80
jae 0x47dd04
mov byte [edi], cl
mov eax, 1
jmp 0x47dd15
push ebx
push dword [esp + 0x84]
push edi
call fcn.0046e690
add esp, 0xc
mov esi, dword [esp + 0x50]
movzx eax, al
add edi, eax
add esi, 0xc
mov ebx, dword [esi + 0x10]
cmp ebx, 0x80
jae 0x47dd35
mov byte [edi], bl
mov eax, 1
jmp 0x47dd41
push 0
push ebx
push edi
call fcn.0046e690
add esp, 0xc
movzx eax, al
add edi, eax
lea eax, [ebx - 1]
mov dword [esp + 0x50], edi
cmp eax, 6
ja 0x47dd76
movzx edx, byte [ebx + 0x4cf090]
mov ecx, dword [esi - 0xc]
mov edi, edx
mov eax, dword [esi - 8]
mov ebx, dword [esp + 0x48]
dec edx
mov byte [ebx + edx], cl
shrd ecx, eax, 8
shr eax, 8
test edx, edx
jne 0x47dd65
jmp 0x47dd96
cmp ebx, 0xc
jb 0x47dd94
mov edi, dword [esi]
test edi, edi
je 0x47dd96
mov ebx, dword [esp + 0x48]
push edi
push dword [esi + 4]
push ebx
call fcn.004ac060
add esp, 0xc
jmp 0x47dd96
xor edi, edi
add dword [esp + 0x48], edi
add esi, 0x28
mov edi, dword [esp + 0x50]
lea eax, [esi - 0xc]
cmp eax, dword [esp + 0x4c]
jbe 0x47dd21
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
cmp dword [edx + 0xc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x30]
je 0x47dde6
push eax
call fcn.004511e0
mov esi, eax
mov edi, edx
add esp, 4
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], edi
jmp 0x47de2a
lea ecx, [esp + 0xc8]
mov dword [esp + 0xc8], 0
push ecx
push eax
push esi
mov dword [esp + 0xd8], 0
call fcn.0044ed50
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov edi, dword [esp + 0xcc]
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x47de54
push eax
call fcn.0043df70
add esp, 4
jmp 0x47de5d
mov ecx, 4
mov word [eax + 8], cx
mov dword [eax], esi
mov dword [eax + 4], edi
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
cmp dword [esi + 0x118], 0
jne 0x483073
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x34]
cmp eax, ecx
jb 0x4826fa
mov ebx, dword [esp + 0x7c]
ja 0x47dea0
cmp dword [esp + 0x9c], ebx
jb 0x4826fa
lea ecx, [ecx]
mov eax, dword [esi + 0x160]
test eax, eax
je 0x4826a7
add ebx, dword [esi + 0x168]
push dword [esi + 0x164]
adc ecx, 0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x90], ecx
call eax
add esp, 4
test eax, eax
jne 0x483062
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x34]
cmp eax, ecx
ja 0x47dea0
jb 0x47def2
cmp dword [esp + 0x9c], ebx
jae 0x47dea0
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x50], edi
test eax, eax
jne 0x47e00a
cmp dword [esi + 0xbc], eax
jg 0x482912
test edi, edi
jne 0x47df33
xor esi, esi
jmp 0x47df47
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x47df38
sub esi, ecx
and esi, 0x3fffffff
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x1e8]
add eax, dword [ecx + 0x1e4]
push eax
push 0
push ecx
call fcn.00488380
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
push edx
lea eax, [esi + 0x21]
push eax
push dword [esp + 0x34]
call fcn.00455fb0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4826a3
lea ecx, [esi + 1]
push ecx
push dword [esp + 0x54]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.004ac060
mov esi, dword [esp + 0x38]
add esp, 0xc
cmp byte [esi + 0x51], 0
je 0x47dfb6
mov byte [esi + 0x51], 0
mov byte [esi + 0x59], 1
jmp 0x47dfbc
inc dword [esi + 0x1e4]
mov eax, dword [esi + 0x1d8]
mov dword [edi + 0x18], eax
mov dword [esi + 0x1d8], edi
mov eax, dword [esi + 0x1f0]
mov ecx, dword [esi + 0x1f4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [esi + 0x1f8]
mov ecx, dword [esi + 0x1fc]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [edi + 0x14], ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esi + 0x1d8]
xor ebx, ebx
test esi, esi
je 0x47e02d
push edi
push dword [esi]
call fcn.00475700
add esp, 8
test eax, eax
je 0x47e052
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x47e016
push edi
mov edi, dword [esp + 0x34]
push str.no_such_savepoint:__s
push edi
call fcn.0047b1a0
mov ebx, dword [esp + 0x38]
mov edx, 1
add esp, 0xc
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x6c]
cmp dword [edx + 0xbc], 0
jle 0x47e06c
cmp edi, 1
je 0x482933
cmp dword [esi + 0x18], 0
jne 0x47e0f6
cmp byte [edx + 0x59], 0
je 0x47e0f6
mov dword [esp + 0x60], 1
cmp edi, 1
jne 0x47e0fe
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov edx, dword [eax + 0x1f8]
add edx, dword [eax + 0x1f0]
mov ecx, dword [eax + 0x1fc]
adc ecx, dword [eax + 0x1f4]
test ecx, ecx
jg 0x482995
jl 0x47e0b9
test edx, edx
jne 0x482995
mov eax, dword [esp + 0x2c]
push dword [esp + 0x30]
mov byte [eax + 0x51], 1
call fcn.00483db0
add esp, 4
cmp eax, 5
je 0x482960
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x38], edx
test edx, edx
jne 0x482954
mov edx, dword [esp + 0x2c]
mov byte [edx + 0x59], 0
jmp 0x47e1fa
mov dword [esp + 0x60], 0
mov ecx, dword [edx + 0x1e4]
sub ecx, ebx
dec ecx
cmp edi, 2
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x48], ecx
mov eax, dword [edi + 0x14]
jne 0x47e17a
mov edx, dword [edx + 0x18]
xor ebx, ebx
and edx, 1
mov dword [esp + 0x4c], edx
test eax, eax
jle 0x47e180
mov ecx, edx
xor ecx, 1
xor edi, edi
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x2c]
push ecx
push 0x204
mov eax, dword [eax + 0x10]
push dword [edi + eax + 4]
call fcn.00451b90
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov eax, dword [esp + 0x2c]
inc ebx
mov ecx, dword [esp + 0x50]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x47e132
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
jmp 0x47e180
xor edx, edx
mov dword [esp + 0x4c], edx
xor ebx, ebx
test eax, eax
jle 0x47e1c9
mov eax, dword [esp + 0x2c]
xor edi, edi
lea esp, [esp]
mov eax, dword [eax + 0x10]
push ecx
push dword [esp + 0x70]
push dword [edi + eax + 4]
call fcn.00451250
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov eax, dword [esp + 0x2c]
inc ebx
mov ecx, dword [esp + 0x48]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x47e190
mov edx, dword [esp + 0x4c]
mov edi, eax
test edx, edx
je 0x47e1e2
push 0
push edi
call fcn.00458400
push edi
call fcn.0046f220
add esp, 0xc
or dword [edi + 0x18], 1
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x4828f6
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0x1d8]
cmp ecx, esi
je 0x47e233
mov edi, dword [esp + 0x2c]
mov eax, dword [ecx + 0x18]
push ecx
push edi
mov dword [edi + 0x1d8], eax
call fcn.00455ea0
dec dword [edi + 0x1e4]
add esp, 8
mov ecx, dword [edi + 0x1d8]
cmp ecx, esi
jne 0x47e208
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
cmp edi, 1
jne 0x47e262
mov eax, dword [esi + 0x18]
push esi
mov esi, dword [esp + 0x30]
push esi
mov dword [edx + 0x1d8], eax
call fcn.00455ea0
add esp, 8
cmp dword [esp + 0x60], 0
jne 0x4826a7
dec dword [esi + 0x1e4]
jmp 0x47e29a
cmp dword [esp + 0x60], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x1f0], eax
mov dword [edx + 0x1f4], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x1f8], eax
mov dword [esi + 0x1fc], ecx
je 0x47e29a
cmp edi, 2
jne 0x4826a7
push ebx
push edi
push esi
call fcn.00488380
mov edi, dword [esp + 0x3c]
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov dword [esp + 0xc4], 0
mov edx, dword [edx + 8]
test edx, edx
je 0x47e2f5
mov eax, dword [esi + 0x20]
and eax, 0x100000
or eax, 0
jne 0x4829bc
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x47e41c
lea eax, [esp + 0xc4]
push eax
push edx
push esi
call fcn.0044e0f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4829ce
test byte [edi + 0x98], 0x40
je 0x47e420
mov edi, dword [esp + 0x28]
cmp dword [edi + 8], eax
je 0x47e426
mov ebx, dword [esp + 0x2c]
cmp byte [ebx + 0x51], al
je 0x47e35d
cmp dword [ebx + 0xb8], 1
jle 0x47e42c
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x47e37d
inc dword [ebx + 0x1e8]
mov eax, dword [ebx + 0x1e4]
add eax, dword [ebx + 0x1e8]
mov dword [edi + 0x30], eax
dec eax
push eax
push 0
push ebx
call fcn.00488380
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47e3f2
mov edi, dword [edi + 0x30]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], al
je 0x47e3b0
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x47e3b0
push esi
call fcn.004268b0
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x60]
jle 0x47e3cd
cmp byte [eax + 6], 0
je 0x47e3cd
push edi
push eax
call fcn.0043e950
add esp, 8
mov dword [esp + 0x38], eax
jmp 0x47e3d5
mov dword [esp + 0x38], 0
cmp byte [esi + 9], 0
je 0x47e3ea
add dword [esi + 0xc], 0xffffffff
jne 0x47e3ea
push esi
call fcn.00492520
add esp, 4
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x1f0]
mov ecx, dword [esi + 0x1f4]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [esi + 0x1f8]
mov ecx, dword [esi + 0x1fc]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
jmp 0x47e432
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
jmp 0x47e432
mov esi, dword [esp + 0x2c]
jmp 0x47e42e
mov esi, ebx
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
cmp word [ecx + 2], 0
je 0x47e46b
mov eax, dword [esp + 0xc4]
cmp eax, dword [ecx + 0xc]
jne 0x4829ff
mov eax, ecx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
jne 0x4829ff
test edx, edx
jne 0x47c7b6
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x124]
push eax
mov eax, dword [esi + 0x10]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.0044f410
mov eax, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x47e4f3
push ecx
call fcn.0043df70
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x124]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x124]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
shl esi, 4
add esi, dword [eax + 0x10]
push dword [edx + 8]
push dword [esi + 4]
call fcn.00451c80
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], edx
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x47e574
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx eax, word [eax + 2]
mov ecx, dword [ecx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x2c]
mov dword [eax], ecx
or dword [esi + 0x18], 1
jmp 0x47e58a
cmp eax, 2
jne 0x47e586
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0xc]
mov al, byte [eax + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 4], 1
jne 0x47e5ae
push 0
push esi
call fcn.00458400
mov edx, dword [esp + 0x40]
add esp, 8
and dword [edi + 0x98], 0xfffffffc
mov ecx, dword [esp + 0x28]
test edx, edx
jne 0x47c7b6
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x47e5e6
mov eax, dword [esi + 0x3c]
cmp eax, dword [ebx + 8]
je 0x47e6f8
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x482a85
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 8]
mov eax, ecx
shl eax, 4
add eax, dword [esi + 0x10]
cmp dl, 0x62
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], ecx
mov esi, dword [eax + 4]
mov dword [esp + 0x60], esi
jne 0x47e654
mov eax, dword [eax + 0xc]
movzx edi, word [edx + 2]
mov esi, dword [esp + 0x30]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x93]
jae 0x47e656
mov byte [esi + 0x93], al
jmp 0x47e656
xor edi, edi
test byte [edx + 2], 0x10
je 0x47e679
mov ecx, dword [esp + 0x3c]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00484ef0
mov ebx, dword [esi]
add esp, 4
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
mov al, byte [edx + 1]
cmp al, 0xf7
jne 0x47e68d
mov eax, dword [edx + 0x10]
mov dword [esp + 0x4c], eax
movzx eax, word [eax + 8]
jmp 0x47e69a
cmp al, 0xfd
jne 0x47e696
mov eax, dword [edx + 0x10]
jmp 0x47e69a
mov eax, dword [esp + 0x48]
push 0
push ecx
push eax
push dword [edx + 4]
push dword [esp + 0x40]
call fcn.00421b40
mov esi, eax
add esp, 0x14
test esi, esi
je 0x482c39
mov byte [esi + 2], 1
or dword [esi + 8], 4
mov dword [esi + 0x3c], ebx
push dword [esi + 0x30]
push dword [esp + 0x50]
push edi
push ebx
push dword [esp + 0x70]
call fcn.0044ef20
mov edi, dword [esp + 0x44]
mov edx, eax
mov eax, dword [esp + 0x60]
add esp, 0x14
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], edx
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
jmp 0x47e6fc
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x30]
and cl, 3
mov byte [eax + 3], cl
test edx, edx
jne 0x47c7b6
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov edi, dword [eax + ecx*4]
movsx eax, word [edi + 0x40]
push eax
push dword [edx + 4]
push dword [esp + 0x40]
call fcn.00421b40
mov esi, eax
add esp, 0x14
test esi, esi
je 0x482c39
mov byte [esi + 2], 1
or dword [esi + 8], 1
mov ecx, dword [edi + 0x34]
mov dword [esi + 0x34], ecx
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x3c]
mov dword [esi + 0x3c], eax
mov ecx, dword [edi + 8]
xor ecx, dword [esi + 8]
and ecx, 4
xor ecx, dword [esi + 8]
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x30]
push dword [esi + 0x34]
push 4
push dword [esi + 0x3c]
push dword [esi + 0x10]
call fcn.0044ef20
add esp, 0x14
mov dword [esp + 0x38], eax
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x47e7de
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0xc], 0
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0x10], 0x4c93ac
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x47e843
test byte [esi + 8], 8
jne 0x47e843
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x24], 0
push 0
push dword [esi + 0x3c]
push dword [esi + 0x10]
call fcn.0044e470
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
push 0
push 0xffffffffffffffff
push dword [edx + 8]
push ecx
push edi
call fcn.00421b40
mov esi, eax
add esp, 0x14
test esi, esi
je 0x482b8e
mov eax, dword [esp + 0x28]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
push 0x41e
movzx ecx, word [eax + 2]
mov eax, dword [esp + 0x30]
or ecx, 5
push ecx
push edi
push eax
push 0
push dword [eax]
call fcn.00450740
mov edx, eax
add esp, 0x18
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
push eax
push 1
push dword [edi]
call fcn.0044e0f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47e927
mov ecx, dword [esp + 0x28]
lea ebx, [esi + 0x3c]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x50], eax
mov dword [esi + 0x34], eax
test eax, eax
je 0x47e904
movzx eax, word [ecx + 2]
or eax, 2
push eax
push ebx
push dword [edi]
call fcn.0044eed0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47e8fe
push dword [esi + 0x30]
push dword [esp + 0x54]
push 4
push dword [ebx]
push dword [edi]
call fcn.0044ef20
mov edx, eax
add esp, 0x14
mov dword [esp + 0x38], edx
mov byte [esi + 4], 0
jmp 0x47e927
mov dword [ebx], 1
push dword [esi + 0x30]
push 0
push 4
push 1
push dword [edi]
call fcn.0044ef20
mov edx, eax
mov byte [esi + 4], 1
add esp, 0x14
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x482a97
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
push 1
push 0xffffffffffffffff
push dword [edx + 8]
push dword [edx + 4]
push edi
call fcn.00421b40
add esp, 0x14
test eax, eax
je 0x482b8e
mov edx, dword [esp + 0x28]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x34], ecx
push dword [edx + 0xc]
push esi
call fcn.00486bf0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
je 0x47b338
jmp 0x47b350
mov edx, dword [esp + 0x28]
push 3
push 0xffffffffffffffff
push dword [edx + 0xc]
push dword [edx + 4]
push edi
call fcn.00421b40
add esp, 0x14
test eax, eax
je 0x482b8e
mov ecx, dword [esp + 0x28]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov byte [eax + 4], 1
mov dword [eax + 0x30], 0x4e87fb
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
push dword [eax + ecx*4]
push edi
call fcn.00483ba0
mov eax, dword [esp + 0x30]
add esp, 8
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x48], 0
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov byte [esi + 2], 0
mov byte [esi + 3], 0
mov dword [esi + 0x24], 0
cmp byte [esi + 4], 0
je 0x47ebae
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov dword [esp + 0x50], eax
and al, 0x2e
cmp al, 2
jne 0x47eadc
push 0
push edi
call fcn.004232f0
add esp, 8
push edi
call fcn.004185c0
movzx ecx, word [edi + 8]
add esp, 4
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10c], edx
mov word [edi + 8], ax
test cl, 0x24
jne 0x47eb6d
test cl, 8
jne 0x47eb3e
test cl, 1
jne 0x47b338
cmp ebx, 0x18
jae 0x47b338
lea eax, [esp + 0x74]
push eax
push dword [esi + 0x30]
call fcn.0044fff0
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
jmp 0x47ecf7
fld qword [edi]
fild qword [esp + 0x108]
fstp qword [esp + 0x50]
fld qword [esp + 0x50]
fcomi st(1)
jbe 0x47eb5f
fstp st(0)
fstp st(0)
test bl, 1
je 0x47eb6d
dec ebx
jmp 0x47eb6d
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x47eb6d
test bl, 1
jne 0x47eb6d
inc ebx
mov edi, dword [esp + 0x108]
lea eax, [esp + 0x74]
push eax
push 0
push edx
push edi
push 0
push dword [esi + 0x30]
call fcn.00450080
mov edx, eax
mov dword [esi + 0x48], edi
mov eax, dword [esp + 0x124]
add esp, 0x18
mov edi, dword [esp + 0x30]
mov dword [esp + 0x38], edx
mov dword [esi + 0x4c], eax
test edx, edx
jne 0x47c7b6
jmp 0x47ec52
mov eax, dword [esi + 0x30]
mov ecx, dword [edx + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x67], al
mov eax, 0
setne al
test bl, 1
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x188], eax
sete al
mov word [esp + 0x190], cx
mov ecx, dword [esp + 0x3c]
lea eax, [eax*2 - 1]
mov byte [esp + 0x192], al
mov eax, dword [edx + 0xc]
mov byte [esp + 0x196], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x18c], eax
lea eax, [esp + 0x74]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x198]
push eax
push dword [esi + 0x30]
call fcn.00450080
mov edx, eax
add esp, 0x18
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
cmp byte [esp + 0x67], al
je 0x47ec52
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
cmp byte [esp + 0x196], dl
je 0x47ecf7
mov eax, dword [esp + 0x74]
cmp ebx, 0x18
jl 0x47ecde
test eax, eax
js 0x47eca1
jne 0x47ec6a
cmp ebx, 0x19
je 0x47eca1
mov dword [esp + 0x74], 0
cmp dword [esp + 0x48], 0
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
je 0x4826fa
add dword [esp + 0x28], 0x14
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
push 0
push dword [esi + 0x30]
mov dword [esp + 0x7c], 0
call fcn.004506e0
add esp, 8
mov edx, eax
mov dword [esp + 0x38], edx
test edx, edx
je 0x47ec72
cmp edx, 0x65
jne 0x47c7b6
mov dword [esp + 0x38], 0
mov dword [esp + 0x74], 1
jmp 0x47b338
test eax, eax
jg 0x47ed07
jne 0x47ece9
cmp ebx, 0x16
je 0x47ed07
mov eax, dword [esi + 0x30]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x74], ecx
cmp dword [esp + 0x74], 0
jne 0x47b338
jmp 0x47ec72
mov ecx, dword [esi + 0x30]
xor eax, eax
mov dword [esp + 0x74], 0
and byte [ecx + 1], 0xf1
mov word [ecx + 0x32], ax
cmp byte [ecx], al
jne 0x47ed46
movzx edx, word [ecx + 0x46]
test dx, dx
je 0x47ed46
mov eax, dword [ecx + 0x74]
cmp byte [eax + 8], 0
je 0x47ed46
lea eax, [edx - 1]
mov dword [esp + 0x38], 0
mov word [ecx + 0x46], ax
jmp 0x47ec72
push ecx
call fcn.00427140
add esp, 4
jmp 0x47ecb6
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0x18]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x30]
cmp byte [eax], 0
jne 0x47b35c
mov eax, dword [ebx + 0x34]
mov edi, dword [ecx + 4]
mov dword [esp + 0x218], eax
mov ax, word [ecx + 0x24]
mov word [esp + 0x220], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x222], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x21c], eax
mov esi, dword [ebx + 0x30]
push esi
call fcn.004370b0
mov edx, dword [esi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x482aaa
jb 0x47edd5
cmp ecx, 0x7ffffffe
ja 0x482aaa
xor eax, eax
mov dword [esp + 0x2c0], 0
mov word [esp + 0x2b0], ax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c8], eax
lea eax, [esp + 0x2a8]
push eax
push edx
push esi
call fcn.00484d30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
push eax
lea eax, [esp + 0x21c]
push eax
push dword [esp + 0x2c0]
push dword [esp + 0x2c0]
call fcn.00485ed0
add esp, 0x10
mov esi, eax
test dword [esp + 0x2b0], 0x2400
jne 0x47ee4d
cmp dword [esp + 0x2c0], 0
je 0x47ee5d
lea eax, [esp + 0x2a8]
push eax
call fcn.00496190
add esp, 4
mov dword [esp + 0x38], 0
test esi, esi
jg 0x47ee9c
je 0x47b338
test edi, edi
jle 0x4826a3
push 0
push dword [ebx + 0x30]
dec edi
call fcn.004506e0
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
je 0x47eda6
cmp edx, 0x65
jne 0x4828f6
mov esi, dword [esp + 0x28]
add esi, 0x14
mov dword [esp + 0x38], 0
jmp 0x47b33c
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x47eee7
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x47b467
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
cmp dword [eax + ecx*4], 0
je case.0x47b2fa.11
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x47b35c
mov esi, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esi + 4]
mov ebx, dword [eax + ecx*4]
mov ecx, esi
cmp dword [ecx + 0x10], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jle 0x47ef9c
mov eax, dword [ebx + 0x34]
lea edi, [esp + 0x298]
mov dword [esp + 0x298], eax
mov ax, word [ecx + 0x10]
mov dword [esp + 0x29c], esi
xor esi, esi
mov word [esp + 0x2a0], ax
jmp 0x47efe9
mov eax, 0x4000
test word [esi + 8], ax
je 0x47efb8
push esi
call fcn.00484b40
add esp, 4
test eax, eax
jne 0x482b8e
push dword [ebx + 0x34]
call fcn.0047a4f0
mov edi, eax
add esp, 4
mov dword [esp + 0x50], edi
test edi, edi
je 0x482c39
push edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [ebx + 0x34]
call fcn.004865e0
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov esi, edi
mov byte [edi + 0xa], 0
cmp byte [ecx], 0x1c
mov dword [esp + 0x50], 0
jne 0x47f027
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x47f027
mov eax, dword [edi + 4]
add eax, 8
lea ebx, [ebx]
test byte [eax], 1
jne 0x47f01f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x47f010
jmp 0x47f027
mov dword [esp + 0x50], 1
lea eax, [esp + 0x128]
push eax
push 0
push 0
push 0
push edi
push dword [ebx + 0x30]
call fcn.00450080
add esp, 0x18
mov edx, eax
mov dword [esp + 0x38], edx
test esi, esi
je 0x47f05f
push esi
mov esi, dword [esp + 0x30]
push esi
call fcn.00455ea0
mov edx, dword [esp + 0x40]
add esp, 8
jmp 0x47f063
mov esi, dword [esp + 0x2c]
test edx, edx
jne 0x4828f6
mov eax, dword [esp + 0x128]
xor ecx, ecx
test eax, eax
mov dword [ebx + 0x28], eax
sete cl
test eax, eax
setne al
mov byte [ebx + 2], al
mov eax, dword [esp + 0x28]
mov byte [ebx + 3], dl
mov dword [ebx + 0x24], edx
mov al, byte [eax]
cmp al, 0x1e
jne 0x47f0b7
test ecx, ecx
jne 0x47b338
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
cmp dword [esp + 0x50], 0
jne 0x47b338
test ecx, ecx
je 0x47b338
mov ecx, dword [esp + 0x28]
cmp al, 0x1b
jne 0x4826ab
mov edi, dword [esp + 0x30]
mov eax, ecx
mov ax, word [eax + 0x10]
mov word [ebx + 0xc], ax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x24
lea esi, [ebx + eax*8]
jne 0x47f179
mov ecx, 0xa
lea edi, [esp + 0x2f8]
rep movsd dword es:[edi], dword [esi]
mov ax, word [esp + 0x300]
test al, 4
jne 0x47f165
test al, 8
jne 0x47f145
test al, 2
je 0x47f15d
lea eax, [esp + 0x2f8]
push 1
push eax
call fcn.004232f0
add esp, 8
jmp 0x47f155
lea eax, [esp + 0x2f8]
push eax
call fcn.00484100
add esp, 4
mov ax, word [esp + 0x300]
test al, 4
je 0x47b338
mov edi, dword [esp + 0x2f8]
mov ebx, dword [esp + 0x2fc]
jmp 0x47f18a
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xf4], 0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xf4]
push eax
push 0
push ebx
push edi
push 0
push dword [esi + 0x30]
call fcn.00450080
mov dword [esi + 0x48], edi
mov edx, eax
mov eax, dword [esp + 0x10c]
add esp, 0x18
mov dword [esi + 0x4c], ebx
mov byte [esi + 2], 0
mov dword [esi + 0x24], 0
mov byte [esi + 3], 0
mov dword [esp + 0x38], edx
mov dword [esi + 0x28], eax
test eax, eax
je 0x47f21e
mov esi, dword [esp + 0x28]
cmp dword [esi + 8], 0
jne 0x47b33c
push 0x4d6684
push 0x162cb
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
add esp, 0x14
mov edx, 0xb
jmp 0x4828f2
mov edi, dword [esp + 0x30]
test edx, edx
jne 0x47c7b6
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x47f26d
push edx
call fcn.0043df70
add esp, 4
mov edx, eax
jmp 0x47f276
mov eax, 4
mov word [edx + 8], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
xor esi, esi
xor edi, edi
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], edi
mov dword [esp + 0xb8], esi
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
mov dword [esp + 0x50], edx
test word [edx + 8], ax
je 0x47f301
push edx
call fcn.0043df70
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x47f30a
mov eax, 4
mov word [edx + 8], ax
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x60]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x48], ebx
test byte [ebx + 8], 2
jne 0x47f3a3
lea eax, [esp + 0xb8]
push eax
push dword [ebx + 0x30]
call fcn.0044fff0
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
cmp dword [esp + 0xb8], esi
je 0x47f356
lea edi, [eax + 1]
xor esi, esi
jmp 0x47f391
mov esi, dword [ebx + 0x30]
push esi
call fcn.004370b0
mov edi, dword [esi + 0x20]
add esp, 4
mov esi, dword [esi + 0x24]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], esi
cmp esi, 0x7fffffff
jl 0x47f38b
jg 0x47f385
cmp edi, 0xffffffff
jb 0x47f38b
or dword [ebx + 8], 2
jmp 0x47f39f
add edi, 1
adc esi, 0
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], edi
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x47f439
mov edx, dword [edx + 0xc8]
test edx, edx
je 0x47f3d7
mov eax, dword [edx + 4]
test eax, eax
je 0x47f3cc
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x47f3c3
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x47f3e1
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x3c]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00484ef0
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 4]
cmp eax, 0xffffffff
jne 0x47f400
cmp ecx, 0x7fffffff
je 0x47f4b6
mov edx, dword [esp + 0x48]
test byte [edx + 8], 2
jne 0x47f4b6
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x47f430
jl 0x47f41e
cmp edi, eax
jae 0x47f430
mov edi, eax
mov esi, ecx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
mov ebx, dword [esp + 0x48]
test byte [ebx + 8], 2
je 0x47f4c4
xor ebx, ebx
lea eax, [esp + 0x90]
push eax
push 8
call fcn.00415750
mov esi, dword [esp + 0x9c]
lea eax, [esp + 0xc0]
mov edi, dword [esp + 0x98]
and esi, 0x3fffffff
push eax
mov eax, dword [esp + 0x54]
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0xa0], edi
push esi
push edi
push 0
push dword [eax + 0x30]
mov dword [esp + 0xb4], esi
call fcn.00450080
mov edx, eax
add esp, 0x20
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
cmp dword [esp + 0xb8], eax
jne 0x47f4c0
inc ebx
cmp ebx, 0x64
jl 0x47f445
mov edx, 0xd
jmp 0x4828f2
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
mov byte [ebx + 3], 0
mov dword [ebx + 0x24], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x47b350
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov ebx, dword [ecx + eax*8 + 4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x250], edi
mov dword [esp + 0x254], ebx
cmp byte [eax + 1], 0xfa
jne 0x47f53f
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0xf4], 0
je 0x47f53f
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
jmp 0x47f545
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 2]
mov ecx, eax
test al, 1
je 0x47f574
mov eax, dword [esp + 0x30]
inc dword [eax + 0x2c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x254]
mov edi, dword [esp + 0x250]
movzx ecx, word [eax + 2]
test cl, 0x20
je 0x47f583
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], ebx
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + edx*8 + 0x10]
mov dword [esp + 0x258], eax
mov eax, dword [ebx + edx*8 + 0xc]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x28]
test byte [eax + 2], 0x10
je 0x47f5ac
mov ecx, dword [esi + 0x28]
jmp 0x47f5ae
xor ecx, ecx
mov edi, 0x4000
test word [ebx + edx*8 + 8], di
je 0x47f5ca
mov eax, dword [ebx + edx*8]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0x28]
jmp 0x47f5d5
mov dword [esp + 0x268], 0
mov dword [esp + 0x248], 0
movzx eax, word [eax + 2]
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x250]
push eax
push dword [esi + 0x30]
call fcn.0044f4c0
mov edx, eax
mov byte [esi + 3], 0
add esp, 0x10
mov dword [esp + 0x38], edx
mov dword [esi + 0x24], 0
test edx, edx
jne 0x4828f6
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x2c]
test eax, eax
je 0x4826a7
push dword [esp + 0x254]
mov ecx, 0x17
push dword [esp + 0x254]
push dword [eax]
mov eax, dword [esp + 0x34]
push dword [esp + 0x58]
test byte [eax + 2], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xf0]
mov eax, dword [esi + 0xf4]
call eax
mov ecx, dword [esp + 0x40]
add esp, 0x18
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov ecx, dword [edi + 0x60]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + 8]
mov esi, dword [ecx + eax*4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x47f6ab
mov ebx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x47f6af
xor ecx, ecx
xor eax, eax
push eax
push ecx
push dword [esi + 0x30]
push dword [edx + 0x30]
call fcn.00451770
add esp, 0x10
jmp 0x47c86b
mov edx, dword [esp + 0x28]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x47f728
cmp dword [esi + 0xf4], 0
je 0x47f728
movsx ecx, byte [edi + 1]
mov eax, dword [esi + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov ebx, dword [edx + 0x10]
mov esi, dword [eax + ecx*8]
mov dword [esp + 0x50], esi
je 0x47f72c
cmp byte [edi + 4], 0
je 0x47f72c
mov esi, dword [edi + 0x30]
push esi
call fcn.004370b0
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
jmp 0x47f72c
xor esi, esi
xor ebx, ebx
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x30]
call fcn.0044ef90
mov edx, eax
mov dword [edi + 0x24], 0
add esp, 8
mov dword [esp + 0x38], edx
mov dword [edi + 0x28], 0
test edx, edx
jne 0x4828f6
test byte [esp + 0x4c], 1
je 0x4826a3
mov eax, dword [esp + 0x30]
inc dword [eax + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xf4]
test eax, eax
je 0x4826a3
test byte [ebx + 0x24], 0x80
jne 0x4826a3
push dword [edi + 0x4c]
push dword [edi + 0x48]
push dword [ebx]
push esi
mov esi, dword [esp + 0x3c]
push 9
push dword [esi + 0xf0]
call eax
mov ecx, dword [esp + 0x40]
add esp, 0x18
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x68], eax
add dword [esi + 0x6c], eax
mov eax, dword [esp + 0x34]
mov dword [edi + 0x2c], 0
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 0x10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edi, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x34]
lea eax, [eax + eax*4]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x47f825
push ebx
call fcn.0047a4f0
add esp, 4
mov dword [esp + 0x50], eax
mov dword [edi + 0x20], eax
test eax, eax
je 0x47f8e1
mov word [eax + 8], si
lea eax, [esp + 0x12c]
push eax
push edi
call fcn.00498420
mov edi, dword [esp + 0x58]
push edi
push eax
push dword [esp + 0x13c]
push ebx
call fcn.004865e0
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x47f866
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x48197a
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x47f855
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x3c]
push 0
push edi
push dword [ebx + eax*8 + 0x10]
push dword [ebx + eax*8 + 0xc]
call fcn.00485ed0
add esp, 0x10
mov dword [esp + 0x38], 0
test eax, eax
jne 0x47b338
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edx + 4]
lea eax, [esp + 0x130]
push eax
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x30]
call fcn.00498420
mov edi, dword [esp + 0x138]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x47f8eb
push 0
push edi
push esi
call fcn.00484d90
add esp, 0xc
test eax, eax
je 0x47f8f6
mov edx, 7
jmp 0x4828f2
mov eax, dword [esi + 0x14]
mov dword [esi + 0x10], eax
and word [esi + 8], 0x2d
mov dword [esi + 0xc], edi
mov ecx, 0x3e40
mov ax, word [esi + 8]
and ax, cx
push edi
or ax, 0x10
mov word [esi + 8], ax
push ebx
push dword [esi + 0x10]
call fcn.004ac060
mov eax, dword [esp + 0x34]
add esp, 0xc
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x38], 0
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x47f97d
push esi
call fcn.0043df70
add esp, 4
mov esi, eax
jmp 0x47f986
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x30]
push edi
call fcn.004370b0
mov ebx, dword [esp + 0x30]
add esp, 4
mov eax, dword [edi + 0x2c]
cmp eax, dword [ebx + 0x70]
ja 0x482ca8
push esi
push eax
push edi
call fcn.00484d30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828fa
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0xc], eax
jne 0x4826c2
mov eax, 0x1000
test word [esi + 8], ax
je 0x4826c2
push esi
call fcn.00484f60
mov edi, dword [esp + 0x34]
add esp, 4
test eax, eax
jne 0x482c41
mov ecx, dword [esp + 0x28]
mov esi, ebx
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x2400
test word [edi + 8], ax
je 0x47fa36
push edi
call fcn.0043df70
add esp, 4
mov edi, eax
jmp 0x47fa3f
mov eax, 4
mov word [edi + 8], ax
mov ebx, dword [esp + 0x30]
mov ecx, dword [esi + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x47fa78
mov eax, 1
mov word [edi + 8], ax
mov esi, dword [esp + 0x2c]
mov edi, ebx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
cmp byte [esi + 3], 0
je 0x47fa99
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x47fa5b
cmp byte [esi], 2
mov ecx, dword [esi + 0x30]
jne 0x47fae5
mov esi, dword [ecx]
lea edx, [esp + 0xd0]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push ebx
mov dword [esp + 0x48], eax
call fcn.00488080
mov edx, dword [esp + 0x48]
add esp, 0x10
test edx, edx
jne 0x4828f6
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xd0]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x47fa5b
cmp byte [ecx], 0
je 0x47fb03
push esi
call fcn.00437f40
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
jmp 0x47fb0b
mov dword [esp + 0x38], 0
cmp byte [esi + 2], 0
jne 0x47fa52
mov esi, dword [esi + 0x30]
push esi
call fcn.004370b0
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x47fa5b
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov byte [eax + 2], 1
mov dword [eax + 0x24], 0
cmp byte [eax], 0
jne 0x4826a7
push dword [eax + 0x30]
call fcn.0044e3f0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov dword [esp + 0xf8], 0
mov ecx, dword [esi + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x30]
cmp dl, 0x84
jne 0x47fbae
mov dword [esi + 0x28], 0xffffffff
cmp byte [eax], 0
je 0x4826a3
lea ecx, [esp + 0xf8]
push ecx
push eax
call fcn.0044fff0
mov edx, eax
add esp, 8
mov eax, dword [esp + 0xf8]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esp + 0x38], edx
mov dword [esi + 0x24], 0
test edx, edx
jne 0x47c7b6
mov esi, dword [esp + 0x28]
cmp dword [esi + 8], edx
jle 0x4826a3
test eax, eax
jne 0x47b33c
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x30]
lea eax, [esp + 0xfc]
push eax
push esi
call fcn.0044f380
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
cmp dword [esp + 0xfc], eax
jne 0x47b338
push esi
call fcn.004511e0
add esp, 4
test edx, edx
jl 0x4826a3
jg 0x47fc69
test eax, eax
jb 0x4826a3
push edx
push eax
call fcn.00466c80
mov esi, dword [esp + 0x30]
add esp, 8
cwde
cmp eax, dword [esi + 0xc]
jge 0x4826a3
mov dword [esp + 0xfc], 1
jmp 0x47b33c
inc dword [edi + 0xac]
mov edx, dword [esp + 0x28]
mov ebx, 1
mov eax, dword [edi + 0x60]
mov dword [esp + 0xbc], ebx
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x30]
cmp byte [edi], bl
jne 0x47fd11
xor edx, edx
mov dword [esp + 0x38], edx
cmp byte [esi + 0x38], dl
jne 0x47fcdf
cmp dword [esi + 0x24], edx
lea eax, [esi + 0x24]
je 0x47fd3a
push eax
lea eax, [esi + 0x40]
xor ebx, ebx
push eax
mov dword [esp + 0xc4], ebx
call fcn.00498700
jmp 0x47fd31
push esi
call fcn.004978a0
push eax
push esi
call fcn.004979d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
push esi
call fcn.00498480
add esp, 4
xor ebx, ebx
mov dword [esp + 0xbc], ebx
jmp 0x47fd34
lea eax, [esp + 0xbc]
push eax
push esi
call fcn.0044f380
mov ebx, dword [esp + 0xc4]
mov byte [edi + 3], 0
mov dword [edi + 0x24], 0
add esp, 8
mov edx, eax
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov byte [edi + 2], bl
test ebx, ebx
jne 0x47b338
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x30]
cmp byte [esi + 0x38], 0
je 0x47fde9
cmp byte [esi + 0x39], 0
je 0x47fda9
push dword [esi + 0x10]
call fcn.00496be0
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47fe1d
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x18], edx
jne 0x47fe1d
mov esi, dword [esp + 0x2c]
mov edx, 0x65
mov dword [esp + 0x38], edx
jmp 0x47fe44
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], 0
push eax
push dword [esi + 0x14]
call fcn.00496580
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47fe1d
cmp dword [esp + 0xd8], eax
je 0x47fe1d
mov esi, dword [esp + 0x2c]
mov edx, 0x65
mov dword [esp + 0x38], edx
jmp 0x47fe44
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 4]
mov dword [esi + 0x24], eax
mov dword [ecx + 4], 0
cmp dword [esi + 0x28], 0
jne 0x47fe0c
push ecx
push dword [esp + 0x30]
call fcn.00498350
add esp, 8
xor eax, eax
mov edx, 0x65
cmp dword [esi + 0x24], eax
cmovne edx, eax
mov dword [esp + 0x38], edx
mov esi, dword [esp + 0x2c]
jmp 0x47fe44
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0x10]
push dword [edi + 0x30]
call eax
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
mov dword [edi + 0x24], 0
test edx, edx
jne 0x47fe6a
mov eax, dword [esp + 0x28]
mov byte [edi + 2], dl
mov edi, dword [esp + 0x30]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp case.0x47b2fa.11
cmp edx, 0x65
jne 0x4828f6
mov dword [esp + 0x38], 0
mov byte [edi + 2], 1
jmp 0x47de66
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, edx
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x47fead
mov eax, dword [esp + 0x30]
inc dword [eax + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x47fed3
push esi
call fcn.00484b40
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x328], eax
mov dword [esp + 0x32c], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x320], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x334], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x338], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x47ff18
mov ecx, dword [edi + 0x28]
jmp 0x47ff1a
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x328]
push eax
push dword [edi + 0x30]
call fcn.0044f4c0
mov dword [edi + 0x24], 0
add esp, 0x10
mov edi, dword [esp + 0x30]
jmp 0x47c86b
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x47ff80
push esi
call fcn.00484b40
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
push esi
push edi
call fcn.004870f0
mov edi, dword [esp + 0x38]
add esp, 8
jmp 0x47c86b
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 0x30]
mov dword [esp + 0x228], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x230], ax
mov byte [esp + 0x232], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x22c], eax
lea eax, [esp + 0x134]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x238]
push eax
push edi
call fcn.00450080
mov edx, eax
add esp, 0x18
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
cmp dword [esp + 0x134], eax
jne 0x48002a
push 4
push edi
call fcn.0044ef90
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov ecx, dword [esp + 0x28]
jmp 0x480039
mov ecx, dword [esp + 0x28]
cmp word [ecx + 2], 0
jne 0x482ad2
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x50], ebx
mov eax, dword [ebx + 0x30]
cmp byte [eax], 0
je 0x480094
push ebx
call fcn.00437f40
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
jmp 0x48009c
mov dword [esp + 0x38], 0
cmp byte [ebx + 2], 0
jne 0x4802b7
mov esi, dword [ebx + 0x30]
push esi
call fcn.004370b0
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov word [esp + 0x27c], cx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x294], ecx
lea ecx, [esp + 0x274]
push ecx
push eax
push esi
mov dword [esp + 0x298], 0
call fcn.00484d30
mov edx, eax
add esp, 0x10
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ebx, dword [esp + 0x280]
movzx esi, byte [ebx]
mov dword [esp + 0xdc], esi
cmp esi, 0x80
jb 0x480123
lea eax, [esp + 0xdc]
push eax
push ebx
call fcn.00462c70
mov esi, dword [esp + 0xe4]
add esp, 8
cmp esi, 3
jb 0x482af2
mov edi, dword [esp + 0x27c]
cmp esi, edi
ja 0x482aee
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [esp + 0xe0], ecx
cmp ecx, 0x80
jb 0x48016a
lea ecx, [esp + 0xe0]
push ecx
push eax
call fcn.00462c70
mov ecx, dword [esp + 0xe8]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x482aee
cmp ecx, 7
je 0x482aee
movzx edx, byte [ecx + 0x4cf090]
lea eax, [edx + esi]
cmp edi, eax
jb 0x482aee
lea eax, [esp + 0x348]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.004867f0
add esp, 0xc
test dword [esp + 0x278], 0x2400
jne 0x4801be
cmp dword [esp + 0x288], 0
je 0x4801ce
lea eax, [esp + 0x270]
push eax
call fcn.00496190
add esp, 4
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x38], 0
cmp byte [esi], 0x88
jne 0x480230
mov ecx, dword [esi + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x348]
mov ecx, dword [esp + 0x34c]
mov byte [edx + 2], 0
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov ecx, dword [esp + 0x28]
mov byte [edx + 3], 1
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x2c]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x480280
push edx
call fcn.0043df70
mov ecx, dword [esp + 0x350]
mov edx, eax
mov eax, dword [esp + 0x34c]
add esp, 4
mov esi, dword [esp + 0x2c]
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [esp + 0x34c]
mov eax, 4
mov esi, dword [esp + 0x2c]
mov word [edx + 8], ax
mov eax, dword [esp + 0x348]
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x4802f3
push eax
call fcn.004961d0
mov ecx, dword [esp + 0x2c]
add esp, 4
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, 1
mov word [eax + 8], cx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x47b467
push eax
call fcn.00483aa0
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x28]
cmp dl, 0x28
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esi + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x238], eax
mov ax, word [esi + 0x10]
mov word [esp + 0x240], ax
sbb al, al
mov byte [esp + 0x242], al
mov eax, dword [esi + 0xc]
mov esi, dword [ecx + 0x30]
push esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x240], eax
call fcn.004370b0
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
je 0x482b49
cmp eax, 0x7fffffff
ja 0x482b49
xor ecx, ecx
mov dword [esp + 0x2e8], 0
mov word [esp + 0x2d8], cx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2f0], ecx
lea ecx, [esp + 0x2d0]
push ecx
push eax
push esi
call fcn.00484d30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
push eax
lea eax, [esp + 0x23c]
push eax
push dword [esp + 0x2e8]
push dword [esp + 0x2e8]
call fcn.00485ed0
add esp, 0x10
mov esi, eax
test dword [esp + 0x2d8], 0x2400
jne 0x480431
cmp dword [esp + 0x2e8], 0
je 0x480441
lea eax, [esp + 0x2d0]
push eax
call fcn.00496190
add esp, 4
mov ecx, dword [esp + 0x28]
test byte [ecx], 1
jne 0x48044e
neg esi
jmp 0x48044f
inc esi
test esi, esi
jg 0x47b338
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x2400
test word [edi + 8], ax
je 0x480498
push edi
call fcn.0043df70
mov edx, dword [esp + 0x2c]
add esp, 4
mov edi, eax
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [esi + 0xc4]
inc eax
cmp dword [esi + 0xb8], eax
jg 0x482b65
mov eax, dword [edx + 0xc]
mov ecx, eax
mov ebx, dword [edx + 4]
shl ecx, 4
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0xe4], 0
mov dword [esp + 0x50], ecx
mov esi, dword [ecx + eax + 4]
cmp byte [esi + 9], 0
je 0x4804f1
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4804f1
push esi
call fcn.004268b0
add esp, 4
lea eax, [esp + 0xe4]
push eax
push ebx
push esi
call fcn.00426240
add esp, 0xc
mov dword [esp + 0x38], eax
cmp byte [esi + 9], 0
je 0x48051c
add dword [esi + 0xc], 0xffffffff
jne 0x48051c
push esi
call fcn.00492520
add esp, 4
mov esi, dword [esp + 0xe4]
mov eax, 4
mov word [edi + 8], ax
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x4828f6
test esi, esi
je 0x4826a3
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x50]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x10]
mov ecx, dword [edi + ebx + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x48057a
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], esi
jne 0x480570
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x480565
mov ecx, dword [edi + ebx + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x480592
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x48058c
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x480581
mov al, byte [esp + 0x4c]
inc al
mov byte [esp + 0x7b], al
jmp 0x47b350
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xc0]
mov dword [esp + 0xc0], 0
xor ecx, ecx
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edx + 8]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [edx + 4]
push dword [eax + ecx*8 + 4]
call fcn.0044e470
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, eax
mov dword [esp + 0x38], edx
cmp dword [ecx + 0xc], 0
je 0x480618
mov eax, dword [esp + 0xc0]
add dword [edi + 0x2c], eax
mov eax, ecx
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x480614
mov ebx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc0]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
test edx, edx
jne 0x47c7b6
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x480668
push dword [eax + 0x30]
push esi
call fcn.00486df0
mov ecx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [eax + 0x30]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.0044e470
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x4806cc
push esi
call fcn.0043df70
mov edx, dword [esp + 0x2c]
add esp, 4
mov esi, eax
jmp 0x4806d5
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
shl eax, 4
add eax, dword [ecx + 0x10]
lea ecx, [esp + 0xb8]
push ecx
mov dword [esp + 0xbc], 0
push dword [eax + 4]
call fcn.0044eed0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x28]
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
inc byte [esi + 0x5c]
push 0
push 0
push 0
push dword [edx + 0x10]
push esi
call fcn.00413f40
dec byte [esi + 0x5c]
mov edx, eax
add esp, 0x14
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
cmp dword [edx + 0x10], 0
mov esi, dword [edx + 4]
jne 0x4807cd
mov ebx, dword [esp + 0x2c]
mov ecx, esi
add ecx, ecx
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.00470a30
mov eax, dword [esp + 0x2c]
and dword [ebx + 0x18], 0xffffffef
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x7c]
push eax
push esi
mov esi, ebx
push esi
call fcn.00463ae0
or dword [esi + 0x18], 1
mov edx, eax
add esp, 0x14
mov dword [esp + 0x38], edx
and dword [edi + 0x98], 0xfffffffc
jmp 0x4808c9
mov ecx, dword [esp + 0x2c]
lea eax, [edi + 0x7c]
mov dword [esp + 0x204], esi
add esi, esi
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x200], eax
mov dword [esp + 0x20c], 0
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x214], eax
push dword [edx + 0x10]
mov eax, dword [ecx + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ecx
call fcn.00466e10
mov esi, eax
add esp, 0x14
test esi, esi
je 0x482b82
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x1fc]
push 0
push ecx
push fcn.00463860
mov byte [eax + 0xa9], 1
push esi
push eax
mov dword [esp + 0x21c], 0
mov dword [esp + 0x224], 0
call fcn.00413f40
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4808b0
mov eax, dword [esp + 0x208]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4808b0
cmp dword [esp + 0x210], eax
jne 0x4808b0
push 0x4d6684
push 0x168ae
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
add esp, 0x14
mov dword [esp + 0x38], 0xb
push esi
mov esi, dword [esp + 0x30]
push esi
call fcn.00455ea0
mov edx, dword [esp + 0x40]
add esp, 8
mov byte [esi + 0xa9], 0
test edx, edx
je 0x47b467
push esi
call fcn.0046f220
mov edx, dword [esp + 0x3c]
add esp, 4
mov ebx, dword [esp + 0x2c]
cmp edx, 7
je 0x482c41
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov edx, dword [esp + 0x28]
push dword [edx + 4]
push esi
call fcn.0044c170
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
push 0
mov eax, dword [edx + 4]
push dword [edx + 0x10]
shl eax, 4
add eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
push eax
call fcn.00462f00
add esp, 0xc
test eax, eax
je 0x480967
cmp dword [esi + 0x200], 0
jne 0x48095d
add dword [eax + 0x20], 0xffffffff
jne 0x480967
push eax
push esi
call fcn.0042d160
add esp, 8
or dword [esi + 0x18], 1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x18
push eax
call fcn.00462f00
mov edx, eax
add esp, 0xc
test edx, edx
je 0x480967
mov esi, dword [edx + 0xc]
mov ecx, dword [esi + 8]
cmp ecx, edx
jne 0x4809bb
mov eax, dword [edx + 0x14]
mov dword [esi + 8], eax
jmp 0x4809d5
test ecx, ecx
je 0x4809d5
nop
mov eax, dword [ecx + 0x14]
cmp eax, edx
je 0x4809cf
mov ecx, eax
test ecx, ecx
jne 0x4809c0
jmp 0x4809d5
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
mov esi, dword [esp + 0x2c]
push edx
push esi
call fcn.0045f660
mov ecx, dword [esp + 0x30]
add esp, 8
or dword [esi + 0x18], 1
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x28
push eax
call fcn.00462f00
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4826a3
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x480a67
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.00432340
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x480a67
mov eax, dword [edx + 0x44]
add edx, 0x44
test eax, eax
je 0x480a67
cmp eax, esi
je 0x480a62
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x480a53
jmp 0x480a67
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
mov esi, dword [esp + 0x30]
push esi
call fcn.00456e30
mov ecx, dword [esp + 0x30]
add esp, 8
or dword [esi + 0x18], 1
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea edi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
lea eax, [esp + 0x118]
push eax
mov eax, dword [ebx + edi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
movzx ecx, word [edx + 2]
mov edx, dword [esp + 0x38]
add ecx, ecx
push eax
mov eax, dword [edx + 0x10]
push dword [eax + ecx*8 + 4]
push edx
call fcn.0044f970
mov ebx, eax
add esp, 0x18
mov eax, 0x2400
test word [esi + 8], ax
je 0x480af0
push esi
call fcn.004961d0
add esp, 4
jmp 0x480af9
mov eax, 1
mov word [esi + 8], ax
mov eax, dword [esp + 0x118]
test eax, eax
je 0x480b2c
test ebx, ebx
je 0x482c39
mov ecx, dword [esp + 0x3c]
dec eax
push fcn.00415630
push 1
cdq
sub dword [ecx + edi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + edi*8 + 4], edx
push ebx
push esi
call fcn.004852b0
add esp, 0x14
test byte [esi + 8], 2
je 0x48228b
mov al, byte [esp + 0x70]
cmp byte [esi + 0xa], al
je 0x47de62
push dword [esp + 0xa8]
push esi
call fcn.004856b0
add esp, 8
jmp 0x47de62
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x480b87
push esi
call fcn.004851d0
add esp, 4
test eax, eax
jne 0x482c39
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi + 0x10]
call fcn.0046fca0
add esp, 0xc
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov ecx, eax
test al, 0x10
je 0x480c29
mov esi, dword [edi + 0x10]
movzx ecx, word [esi + 0x1a]
test cl, 2
jne 0x480be5
mov eax, ecx
test cl, 1
jne 0x480bde
push dword [esi + 8]
call fcn.00447ae0
mov dword [esi + 8], eax
add esp, 4
movzx eax, word [esi + 0x1a]
or eax, 3
mov word [esi + 0x1a], ax
mov eax, dword [esi + 8]
test eax, eax
je 0x480c25
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x480c04
push esi
call fcn.0046fb90
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
push ebx
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00485160
add esp, 0xc
jmp 0x47de62
movzx ecx, word [edi + 8]
test ecx, 0x2400
je 0x480c3f
push edi
call fcn.004961d0
add esp, 4
jmp 0x482268
mov eax, 1
mov word [edi + 8], ax
jmp 0x482268
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x10
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x480c83
push esi
call fcn.004851d0
add esp, 4
test eax, eax
jne 0x482c39
mov ecx, dword [esp + 0x3c]
test ebx, ebx
je 0x480caa
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
push ebx
push dword [esi + 0x10]
call fcn.0046fd30
add esp, 0x10
test eax, eax
jne 0x47b338
test ebx, ebx
js 0x4826a3
mov ebx, dword [esp + 0x3c]
jmp 0x480b87
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov dword [esp + 0x4c], edi
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], esi
cmp word [eax + 2], 0
je 0x480d00
mov eax, dword [edx + 0xc8]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x480d00
jmp 0x480cf0
cmp dword [eax + 0x1c], ecx
je 0x47d276
mov eax, dword [eax + 4]
test eax, eax
jne 0x480cf0
mov ecx, dword [esp + 0x2c]
mov eax, dword [edx + 0xd0]
cmp eax, dword [ecx + 0x98]
jge 0x482b97
test byte [esi + 8], 0x10
jne 0x480e45
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, ecx
test ecx, ecx
lea ebx, [eax + 1]
cmovne ebx, eax
lea eax, [ebx + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x480d48
add eax, 7
sar eax, 3
lea edi, [eax + ecx*4]
mov eax, edi
cdq
push edx
push eax
push dword [esp + 0x34]
call fcn.00455fb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x482c39
push edi
push 0
push esi
call fcn.004ac5e0
mov eax, dword [esp + 0x5c]
mov ecx, 0x2400
add esp, 0xc
test word [eax + 8], cx
jne 0x480d8a
cmp dword [eax + 0x18], 0
je 0x480d97
push eax
call fcn.00496190
mov eax, dword [esp + 0x54]
add esp, 4
mov ecx, 0x410
mov word [eax + 8], cx
mov dword [eax + 0x10], esi
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x68]
mov dword [eax + 0x24], 0x483b00
mov eax, dword [esp + 0x30]
mov dword [esi], eax
mov dword [esi + 0x3c], ebx
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x30]
mov dword [esi + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c], eax
lea eax, [ebx + 2]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x480e39
mov ebx, dword [esp + 0x2c]
mov edx, 0x80
mov word [eax + 8], dx
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x480e23
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0xd0]
mov ecx, dword [esp + 0x2c]
jmp 0x480e48
mov esi, dword [esi + 0x10]
inc eax
lea ebx, [esi + 0x50]
mov dword [edx + 0xd0], eax
mov eax, dword [edx + 0xc8]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [edx + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [edx]
mov dword [esp + 0x3c], ebx
mov eax, dword [eax + 0x68]
mov dword [esi + 0x48], eax
mov eax, dword [edx + 0xdc]
mov dword [esi + 0x28], eax
mov dword [edx + 0xdc], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xc8], esi
mov dword [edx + 0x58], ebx
mov ecx, dword [esi + 0x3c]
mov dword [edx + 0x18], ecx
movzx eax, word [esi + 0x40]
mov dword [edx + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [ebx + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.004ac5e0
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [edi]
mov dword [esp + 0x68], ecx
mov dword [eax + 0x68], ecx
mov eax, dword [edi + 4]
lea esi, [ecx - 0x14]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x2c]
mov dword [edi + 0x6c], eax
jmp 0x47de6a
push dword [esp + 0x28]
push edi
call fcn.0043df30
mov esi, eax
mov eax, dword [edi + 0xc8]
push 0x1000
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x34]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
push eax
push esi
call fcn.00485550
mov esi, dword [esp + 0x40]
add esp, 0x14
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esi + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x28]
mov ecx, eax
je 0x480f8c
mov eax, dword [eax + 8]
cdq
add dword [esi + 0x1f8], eax
mov eax, dword [esp + 0x34]
adc dword [esi + 0x1fc], edx
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x480fb5
add dword [esi + 0x1f0], eax
mov eax, dword [esp + 0x34]
adc dword [esi + 0x1f4], edx
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x34]
adc dword [edi + 0x44], edx
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
cmp dword [ecx + 4], 0
je 0x48100b
mov eax, dword [esi + 0x1f0]
or eax, dword [esi + 0x1f4]
jne 0x47b35c
mov eax, dword [esi + 0x1f8]
or eax, dword [esi + 0x1fc]
je 0x47b338
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x480fe0
mov edx, dword [edi + 0xc8]
test edx, edx
je 0x481043
mov eax, dword [edx + 4]
test eax, eax
je 0x48102d
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x481024
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x481054
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.00484ef0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.00484ef0
mov ecx, dword [esi + 4]
add esp, 8
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x4826a3
jl 0x481088
cmp dword [edi], eax
jae 0x4826a3
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x47b350
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x47b350
jg 0x4810b9
test ecx, ecx
je 0x47b350
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
jmp 0x47b338
mov edx, dword [esp + 0x28]
push edx
push edi
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
call fcn.0043df30
mov edx, dword [esp + 0x44]
add esp, 8
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], ecx
test ecx, ecx
jl 0x481153
jg 0x481110
test eax, eax
je 0x481153
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x481121
jg 0x481125
test eax, eax
jne 0x481125
xor eax, eax
xor ecx, ecx
push ecx
push eax
lea eax, [esp + 0x118]
push eax
call fcn.0044aa40
add esp, 0xc
test eax, eax
jne 0x481153
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x114]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x47b350
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x47b463
test edx, edx
jl 0x47b338
jg 0x481196
test ecx, ecx
je 0x47b338
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
jmp 0x47b334
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x4811d4
jg 0x4811c7
test eax, eax
je 0x4811d4
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
je 0x47b338
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
push esi
call fcn.00455fb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x482b8e
mov dword [esi + 8], 0
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 8], ax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x18], 0
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x68]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x28]
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], edi
mov byte [esi + 0x18], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x19], bl
mov byte [edx + 1], 0xf0
mov dword [edx + 0x10], esi
mov byte [edx], 0x9e
jmp 0x481285
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
mov ebx, dword [esp + 0x3c]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [esp + 0x50], edi
cmp dword [esi + 8], edi
je 0x4812ce
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x19]
sub ecx, 1
js 0x4812ce
mov edi, dword [esp + 0x28]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x4812b4
mov edi, dword [esp + 0x50]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x28]
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x4812ed
mov eax, dword [ecx + 0x1c]
jmp 0x4812f0
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4826a3
jle 0x481359
mov ecx, dword [esi]
test ecx, ecx
jne 0x48130c
xor eax, eax
jmp 0x48133d
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x481329
cmp byte [ecx + 0xa], 1
jne 0x481329
mov eax, dword [ecx + 0x10]
jmp 0x48133d
test dl, 1
je 0x481332
xor eax, eax
jmp 0x48133d
push 1
push ecx
call fcn.00494ad0
add esp, 8
mov edi, dword [esp + 0x30]
push eax
push 0x4d2204
push edi
call fcn.0047b1a0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x38], eax
jmp 0x48135d
mov edi, dword [esp + 0x30]
cmp byte [esi + 0x18], 0
je 0x481385
mov eax, dword [esp + 0x28]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x481381
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push 1
push eax
call fcn.00485160
add esp, 0xc
mov byte [esi + 0x18], 0
mov eax, dword [esi]
mov ecx, 0x2400
test word [eax + 8], cx
jne 0x481398
cmp dword [eax + 0x18], 0
je 0x4813a3
push eax
call fcn.00496190
mov eax, dword [esi]
add esp, 4
mov edx, dword [esp + 0x38]
mov ecx, 1
mov word [eax + 8], cx
mov dword [esi + 0x14], 0
jmp 0x47c871
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x48147d
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
xor eax, eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov eax, 0x2400
test word [edi + 8], ax
je 0x481431
push edi
call fcn.004961d0
add esp, 4
jmp 0x48143a
mov eax, 1
mov word [edi + 8], ax
lea eax, [esp + 0x198]
mov dword [esp + 0x198], edi
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x19c], ebx
push eax
mov eax, dword [ebx + 0x18]
call eax
mov eax, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1ac]
mov edi, dword [esp + 0x30]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x481489
push ebx
push esi
call fcn.00484ba0
add esp, 8
mov edx, eax
mov dword [esp + 0x38], edx
test edx, edx
jne 0x482bbf
movzx ecx, word [esi + 8]
mov eax, ecx
test cl, 2
je 0x4814bd
mov cl, byte [esp + 0x70]
cmp byte [esi + 0xa], cl
je 0x4814bd
push dword [esp + 0xa8]
push esi
call fcn.004856b0
movzx eax, word [esi + 8]
add esp, 8
test al, 0x12
je 0x4826a3
mov ecx, dword [esi + 0xc]
test eax, 0x4000
je 0x4814d1
add ecx, dword [esi]
mov eax, dword [esi + 0x20]
cmp ecx, dword [eax + 0x70]
jle 0x47b463
mov ebx, dword [esp + 0x2c]
jmp 0x482cac
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x378]
push eax
lea eax, [esp + 0x378]
mov dword [esp + 0x374], 0
push eax
push dword [edx + 8]
mov dword [esp + 0x384], 0xffffffff
push dword [edx + 4]
mov dword [esp + 0x384], 0xffffffff
push esi
call fcn.00451f40
mov edx, eax
add esp, 0x14
mov dword [esp + 0x38], edx
test edx, edx
je 0x481550
cmp edx, 5
jne 0x47c7b6
mov dword [esp + 0x38], 0
mov dword [esp + 0x370], 1
mov eax, dword [esp + 0x28]
xor esi, esi
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x370]
cdq
push edx
push eax
push edi
call fcn.00485160
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x481563
jmp 0x47b350
mov ebx, dword [esp + 0x28]
push ebx
push edi
call fcn.0043df30
mov edx, dword [ebx + 4]
add esp, 8
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [esp + 0x48], eax
cmp esi, 0xffffffff
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ebx, byte [edi + 5]
mov dword [esp + 0x4c], ebx
cmovne ebx, esi
cmp byte [edi + 0x10], 3
jae 0x4815e2
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x4815dc
cmp dword [edi + 0x4c], 0
jg 0x4815e2
jl 0x4815dc
cmp dword [edi + 0x48], 0
ja 0x4815e2
mov esi, dword [esp + 0x4c]
jmp 0x4815e8
mov esi, dword [esp + 0x4c]
mov ebx, esi
cmp byte [edi + 0xf], 0
mov ecx, 0x4cf084
jne 0x4815f9
mov ecx, dword [edi + 0xa8]
cmp ebx, 5
jne 0x48166e
test ecx, ecx
je 0x481632
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x481605
sub ecx, edx
and ecx, 0x3fffffff
je 0x481632
cmp byte [edi + 0xd], 0
mov eax, dword [edi + 0x3c]
mov eax, dword [eax]
jne 0x481632
cmp byte [edi + 4], 0
jne 0x48166e
cmp dword [eax], 2
jl 0x481632
cmp dword [eax + 0x34], 0
jne 0x48166e
mov ebx, esi
mov eax, dword [esp + 0x38]
test eax, eax
je 0x481640
mov ebx, dword [esp + 0x4c]
push ebx
push edi
call fcn.00469020
mov ebx, dword [esp + 0x50]
add esp, 8
mov ecx, 0xa02
mov word [ebx + 8], cx
cmp eax, 6
jne 0x4817bf
mov dword [ebx + 0x10], 0
xor ecx, ecx
jmp 0x4817df
cmp ebx, esi
je 0x481634
cmp esi, 5
je 0x48167c
cmp ebx, 5
jne 0x481634
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x51], 0
je 0x482be1
cmp dword [eax + 0xb8], 1
jg 0x482be1
cmp esi, 5
jne 0x481785
xor esi, esi
cmp dword [edi + 0xd8], esi
jne 0x481702
push 1
push edi
mov dword [esp + 0xf4], esi
call fcn.0043e900
mov esi, eax
add esp, 8
test esi, esi
jne 0x48176d
mov eax, dword [edi]
lea ecx, [esp + 0xec]
push ecx
push esi
push dword [edi + 0xdc]
push eax
mov eax, dword [eax + 0x20]
call eax
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x48176d
cmp dword [esp + 0xec], eax
je 0x481702
push edi
call fcn.0043ea70
mov esi, eax
add esp, 4
test esi, esi
jne 0x48176d
cmp dword [edi + 0xd8], 0
je 0x48176d
push edi
call fcn.0043e760
mov esi, eax
add esp, 4
test esi, esi
jne 0x48176d
push dword [edi + 0xd0]
movzx eax, byte [edi + 0xb]
push dword [edi + 0x98]
push eax
push dword [esp + 0x38]
push dword [edi + 0xd8]
call fcn.00488ad0
mov esi, eax
mov dword [edi + 0xd8], 0
push edi
mov dword [esp + 0x50], esi
call fcn.0043e7d0
add esp, 0x18
test esi, esi
je 0x48176d
cmp byte [edi + 4], 0
jne 0x48176d
push 1
push edi
call fcn.0043f2f0
add esp, 8
jmp 0x48163c
mov dword [esp + 0x38], esi
test esi, esi
jne 0x48163c
push ebx
push edi
call fcn.00469020
add esp, 8
jmp 0x4817a0
cmp esi, 4
jne 0x481795
push 2
push edi
call fcn.00469020
add esp, 8
cmp dword [esp + 0x38], 0
jne 0x48163c
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
push dword [esp + 0x54]
call fcn.004516e0
add esp, 8
mov dword [esp + 0x38], eax
jmp 0x481638
mov ecx, dword [eax*4 + 0x4cfe80]
mov dword [ebx + 0x10], ecx
test ecx, ecx
je 0x4817df
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4817d0
sub ecx, edx
and ecx, 0x3fffffff
mov al, 1
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0xa], al
cmp byte [esp + 0x70], al
je 0x4817fd
push dword [esp + 0xa8]
push ebx
call fcn.004856b0
add esp, 8
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
jmp 0x47c871
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 8]
test eax, eax
je 0x481821
mov ecx, dword [esp + 0x3c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x481823
xor eax, eax
push eax
push dword [edx + 4]
lea eax, [edi + 0x7c]
push esi
push eax
call fcn.004703c0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x38], edx
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
mov edi, dword [esi + 4]
je 0x481884
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x481884
push esi
call fcn.004268b0
add esp, 4
cmp byte [edi + 0x11], 0
jne 0x481897
mov dword [esp + 0x38], 0x65
jmp 0x481950
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x50], ecx
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + 0x24]
bswap ebx
push ebx
push ecx
push edi
call fcn.00432050
mov ecx, eax
add esp, 0xc
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], ecx
cmp eax, ecx
jb 0x48192a
cmp ebx, eax
jae 0x48192a
test ebx, ebx
je 0x48188a
mov eax, dword [edi + 8]
test eax, eax
je 0x4818ea
push 0
push 0
push eax
call fcn.00447e70
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x481950
mov ecx, dword [esp + 0x4c]
push edi
call fcn.00438b10
push 0
push dword [esp + 0x58]
push ecx
push edi
call fcn.004383b0
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
jne 0x481950
mov eax, dword [edi + 0xc]
push dword [eax + 0x48]
call fcn.004697f0
mov ecx, dword [edi + 0x30]
add esp, 4
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xc]
bswap ecx
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], ecx
jmp 0x481950
push 0x4d6684
push 0x10d0f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
add esp, 0x14
mov dword [esp + 0x38], 0xb
cmp byte [esi + 9], 0
je 0x481965
add dword [esi + 0xc], 0xffffffff
jne 0x481965
push esi
call fcn.00492520
add esp, 4
mov edx, dword [esp + 0x38]
test edx, edx
je 0x47b350
cmp edx, 0x65
jne 0x4828f6
mov dword [esp + 0x38], 0
jmp 0x47b338
cmp dword [ecx + 4], 0
jne 0x4819b0
push dword [ecx + 8]
push esi
call fcn.00458400
mov ecx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [ecx + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x30]
or byte [eax + 1], 0x40
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x30]
and byte [eax + 1], 0xbf
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov ebx, dword [esp + 0x28]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x481a41
mov eax, dword [esi + 0x20]
and eax, 0x400
mov dword [esp + 0x50], eax
jne 0x47b467
mov eax, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x38], edx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
add ecx, ecx
mov eax, dword [esi + 0x10]
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], dl
je 0x481b16
inc dword [esi + 0xc]
inc bl
mov byte [esp + 0x11c], bl
cmp byte [esi + 0xa], dl
jne 0x481a7d
push esi
call fcn.004268b0
add esp, 4
push dword [esp + 0x11c]
push edi
push esi
call fcn.00443460
mov edx, eax
add esp, 0xc
mov dword [esp + 0x38], edx
test edx, edx
jne 0x481afd
mov eax, dword [esi + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x481ab6
cmp dword [ecx + 4], edi
jne 0x481aaf
cmp dword [ecx], esi
je 0x481ae8
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x481aa6
push 0
push 0x10
call fcn.00466e30
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x481af4
mov edx, dword [esp + 0x50]
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [edx + 0x4c]
mov dword [ecx + 0xc], eax
mov dword [edx + 0x4c], ecx
cmp bl, byte [ecx + 8]
jbe 0x481af0
mov byte [ecx + 8], bl
xor edx, edx
jmp 0x481af9
mov edx, 7
mov dword [esp + 0x38], edx
cmp byte [esi + 9], 0
je 0x481b16
add dword [esi + 0xc], 0xffffffff
jne 0x481b16
push esi
call fcn.00492520
mov edx, dword [esp + 0x3c]
add esp, 4
test edx, edx
je 0x47b350
mov edi, dword [esp + 0x30]
cmp dl, 6
jne 0x47c7b6
mov eax, dword [esp + 0x28]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0047b1a0
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ebx, dword [esp + 0x2c]
jmp 0x4828fe
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], 0
mov esi, dword [edx + 0x10]
mov edx, dword [edi + 0x16c]
test edx, edx
jle 0x481b8b
cmp dword [edi + 0x184], 0
jne 0x481b8b
mov edx, 6
mov dword [esp + 0x38], edx
test esi, esi
jne 0x481c53
mov ebx, edi
jmp 0x4828fa
test esi, esi
jne 0x481bac
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x38], esi
mov esi, edi
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x481c53
xor ecx, ecx
test edx, edx
jle 0x481be0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x184]
jmp 0x481bd0
cmp dword [eax], esi
je 0x481c6c
inc ecx
add eax, 4
cmp ecx, edx
jl 0x481bd0
push dword [esp + 0x2c]
call fcn.00437e70
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x481c53
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x481c53
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x1e8]
add edx, dword [eax + 0x1e4]
mov ecx, dword [eax + 0x16c]
mov eax, dword [eax + 0x184]
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x2c]
inc dword [eax + 0x16c]
inc dword [esi + 0xc]
test edx, edx
je 0x481c53
cmp dword [edi + 0x50], 0
je 0x481c53
lea eax, [edx - 1]
mov dword [esi + 0x14], edx
push eax
push dword [esi + 8]
mov eax, dword [edi + 0x50]
call eax
add esp, 8
mov dword [esp + 0x38], eax
push dword [esi + 8]
mov edi, dword [esp + 0x34]
push edi
call fcn.00488080
mov edx, dword [esp + 0x40]
add esp, 8
jmp 0x47c871
mov dword [esp + 0x38], 0
jmp 0x481c53
mov edx, dword [esp + 0x28]
xor eax, eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x158], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x158], esi
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
lea eax, [esp + 0x13c]
push eax
call fcn.00484ac0
mov ecx, dword [esp + 0x148]
add esp, 8
mov dword [esp + 0x38], eax
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x481d13
cmp byte [esp + 0x142], 1
jne 0x481d13
mov edx, dword [esp + 0x148]
jmp 0x481d37
test cl, 1
jne 0x481e1d
lea eax, [esp + 0x138]
push 1
push eax
call fcn.00494ad0
mov ecx, dword [esp + 0x148]
add esp, 8
mov edx, eax
test edx, edx
je 0x481e1d
mov eax, dword [esp + 0x28]
lea esi, [edi + 0x7c]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push edx
push ebx
call fcn.0045d980
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x3c]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x3c]
add ecx, 0x170
push edi
push ecx
call fcn.00432340
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x481df2
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x481df2
cmp dword [eax + 0x14], 0
je 0x481df2
push esi
mov esi, dword [esp + 0x30]
push edx
push ecx
push ebx
push esi
call fcn.004989f0
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
jne 0x481e12
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x481e12
nop
cmp dword [eax], esi
je 0x481dbd
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x481db0
jmp 0x481e12
push esi
call fcn.00437e70
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x481e12
push ebx
push esi
call fcn.00462ab0
mov edx, dword [esi + 0x16c]
add esp, 8
mov ecx, dword [esi + 0x184]
mov dword [ecx + edx*4], eax
inc dword [esi + 0x16c]
inc dword [eax + 0xc]
jmp 0x481e12
push edi
push str.no_such_module:__s
push dword [esp + 0x34]
call fcn.00466e10
mov dword [esi], eax
add esp, 0xc
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x38], 1
mov ecx, dword [esp + 0x140]
mov edi, dword [esp + 0x30]
test ecx, 0x2400
jne 0x481e2f
cmp dword [esp + 0x150], 0
je 0x481e3f
lea eax, [esp + 0x138]
push eax
call fcn.00496190
add esp, 4
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
inc dword [esi + 0xc4]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x38], 0
mov ecx, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx + 0x10]
push esi
call fcn.0045d980
mov edi, eax
add esp, 0xc
test edi, edi
je 0x481f0e
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x481f0e
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x482c1a
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x481ea0
push edi
push esi
call fcn.00498f60
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x481ecf
mov eax, dword [ecx + 0x10]
inc dword [edi + 0x20]
push dword [esi + 8]
call eax
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jne 0x481ef1
mov dword [esi + 8], eax
push esi
mov dword [edi + 0x40], eax
call fcn.00488490
add esp, 4
mov esi, dword [esp + 0x2c]
cmp dword [esi + 0x200], 0
jne 0x481f04
add dword [edi + 0x20], 0xffffffff
jne 0x481f0e
push edi
push esi
call fcn.0042d160
add esp, 8
dec dword [esi + 0xc4]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov edx, dword [esp + 0x28]
mov dword [esp + 0xac], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x482c67
mov edi, dword [esi]
test edi, edi
je 0x482c63
lea eax, [esp + 0xac]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [esp + 0x38]
push esi
push ebx
mov dword [esp + 0x48], eax
call fcn.00488080
mov edx, dword [esp + 0x48]
add esp, 0x10
test edx, edx
jne 0x4828f6
mov eax, dword [esp + 0xac]
push 2
push 0xffffffffffffffff
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x34]
push dword [eax + 4]
push ebx
call fcn.00421b40
add esp, 0x14
test eax, eax
je 0x482c2a
mov ecx, dword [esp + 0xac]
mov dword [eax + 0x30], ecx
inc dword [esi + 4]
jmp 0x47fa5b
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov esi, dword [esi + 0x5c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x60], eax
mov ebx, dword [eax + 0x30]
mov edx, dword [ecx + edi*8 + 0x28]
mov eax, dword [ebx]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + edi*8]
mov dword [esp + 0x50], eax
xor eax, eax
test edx, edx
jle 0x48201d
lea ecx, [ecx + edi*8]
add ecx, 0x50
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x482012
mov eax, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0x50]
push edx
push dword [eax + 0x10]
push dword [esp + 0x5c]
mov eax, dword [esi + 0x20]
push ebx
call eax
push dword [esp + 0x5c]
mov edi, dword [esp + 0x48]
push edi
mov dword [esp + 0x54], eax
call fcn.00488080
mov edx, dword [esp + 0x54]
add esp, 0x1c
test edx, edx
jne 0x47c7b6
mov eax, dword [esi + 0x28]
push ebx
call eax
mov ecx, dword [esp + 0x64]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x47b463
jmp 0x47b338
mov esi, dword [esp + 0x28]
mov eax, dword [edi + 0x60]
mov ecx, dword [esi + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x3c]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x4820ba
mov eax, 0x2400
test word [esi + 8], ax
je 0x4820ac
push esi
call fcn.004961d0
add esp, 4
jmp 0x47b350
mov eax, 1
mov word [esi + 8], ax
jmp 0x47b350
mov eax, dword [edi + 0x30]
mov edx, dword [esp + 0x28]
mov ebx, dword [eax]
xor eax, eax
mov ecx, dword [ebx]
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1dc], esi
test byte [edx + 2], 1
mov dword [esp + 0x50], ecx
je 0x48213d
mov eax, 0x2400
test word [esi + 8], ax
je 0x48212c
push esi
call fcn.004961d0
mov ecx, dword [esp + 0x54]
add esp, 4
mov edx, dword [esp + 0x28]
mov eax, 0x4001
mov word [esi + 8], ax
mov dword [esi], 0
jmp 0x482151
mov ax, word [esi + 8]
and ax, word [esp + 0x120]
or ax, 1
mov word [esi + 8], ax
push dword [edx + 8]
lea eax, [esp + 0x1e0]
push eax
push dword [edi + 0x30]
mov eax, dword [ecx + 0x2c]
call eax
mov edi, dword [esp + 0x3c]
push ebx
push edi
mov dword [esp + 0x4c], eax
call fcn.00488080
add esp, 0x14
cmp dword [esp + 0x1f0], 0
jle 0x4821cb
movzx ecx, word [esi + 8]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x48219d
cmp byte [esi + 0xa], 1
jne 0x48219d
mov eax, dword [esi + 0x10]
jmp 0x4821b1
test cl, 1
je 0x4821a6
xor eax, eax
jmp 0x4821b1
push 1
push esi
call fcn.00494ad0
add esp, 8
push eax
push 0x4d2204
push edi
call fcn.0047b1a0
mov eax, dword [esp + 0x1fc]
add esp, 0xc
mov dword [esp + 0x38], eax
movzx ecx, word [esi + 8]
mov eax, ecx
test cl, 2
je 0x4821f3
mov cl, byte [esp + 0x70]
cmp byte [esi + 0xa], cl
je 0x4821f3
push dword [esp + 0xa8]
push esi
call fcn.004856b0
movzx eax, word [esi + 8]
add esp, 8
test al, 0x12
je 0x48220f
mov ecx, dword [esi + 0xc]
test eax, 0x4000
je 0x482203
add ecx, dword [esi]
mov eax, dword [esi + 0x20]
cmp ecx, dword [eax + 0x70]
jg 0x4814dd
mov edx, dword [esp + 0x38]
jmp 0x47c871
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x47b354
mov eax, dword [edi + 0x30]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
push esi
push dword [esp + 0x38]
mov dword [esp + 0x44], eax
call fcn.00488080
mov edx, dword [esp + 0x44]
add esp, 0xc
test edx, edx
jne 0x4828f6
push dword [edi + 0x30]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x47de62
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
mov esi, dword [esi + 8]
dec esi
lea esi, [esi + esi*4]
lea esi, [ecx + esi*4]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x2c]
jmp 0x47de6a
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
jmp 0x47de6a
mov edi, dword [esi + 0x20]
or dword [esi + 0x20], 0x4000000
and edi, 0x4000000
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x3c]
mov dword [esi + 0x24], eax
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 2
lea esi, [ecx + eax*8]
je 0x4822eb
cmp byte [esi + 0xa], 1
je 0x4822eb
push 1
push esi
call fcn.004856b0
mov edx, eax
add esp, 8
mov dword [esp + 0x38], edx
test edx, edx
jne 0x4828f6
mov eax, dword [ebx]
push dword [esi + 0x10]
push ebx
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [esp + 0x34]
add esp, 8
mov dword [esp + 0x38], eax
test edi, edi
jne 0x482312
and dword [esi + 0x20], 0xfbffffff
mov eax, dword [esi + 0x24]
mov dword [esi + 0x24], eax
mov edi, dword [esp + 0x30]
push ebx
push edi
call fcn.00488080
and dword [edi + 0x98], 0xfffffffc
add esp, 8
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
cmp byte [esi + 0x53], 0
jne 0x482b8e
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x482c96
mov ebx, dword [edi]
test ebx, ebx
je 0x482c96
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x47b354
mov al, byte [esi + 0x58]
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x67], al
mov eax, dword [esp + 0x30]
mov esi, dword [eax + 0x5c]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x4823ad
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4823a2
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov al, byte [eax + 2]
mov byte [ecx + 0x58], al
lea eax, [esp + 0x1c8]
push eax
mov eax, dword [ebx + 0x34]
push esi
push edx
push edi
call eax
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
mov al, byte [esp + 0x77]
push edi
mov edi, dword [esp + 0x44]
push edi
mov byte [esi + 0x58], al
call fcn.00488080
mov edx, dword [esp + 0x50]
add esp, 0x18
test edx, edx
jne 0x482423
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 4], edx
je 0x482411
mov eax, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1cc]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov ecx, dword [esp + 0x28]
inc dword [edi + 0x2c]
test edx, edx
je 0x47b35c
mov ebx, esi
jmp 0x4828fe
cmp dl, 0x13
jne 0x48240d
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x482411
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x482c79
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
push dword [esp + 0x28]
push edi
call fcn.0043df30
mov ecx, dword [esp + 0x30]
add esp, 8
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], 0
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
push dword [esp + 0x28]
push edi
call fcn.0043df30
mov ecx, dword [esi + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x30]
add esp, 8
xor edi, edi
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4824db
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x4824f3
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4824f3
push esi
call fcn.004268b0
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x482504
mov dword [eax + 0x9c], edi
jmp 0x48250a
mov edi, dword [eax + 0x9c]
cmp byte [esi + 9], 0
je 0x48251f
add dword [esi + 0xc], 0xffffffff
jne 0x48251f
push esi
call fcn.00492520
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], 0
jmp 0x47b350
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
mov eax, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [esp + 0x50], esi
cmp dword [edi], esi
je 0x48258e
mov dword [edi + 0xc], ebx
mov dword [edi], esi
movzx ecx, byte [edi + 0x19]
sub ecx, 1
js 0x48258e
mov esi, dword [esp + 0x28]
lea edx, [edi + 0x1c]
mov ebx, dword [esp + 0x3c]
lea edx, [edx + ecx*4]
lea esp, [esp]
mov eax, dword [esi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x482570
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x30]
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
mov word [esi + 8], ax
lea eax, [edi + 0x1c]
mov ecx, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x19]
push eax
mov eax, dword [ecx + 0x10]
push edi
call eax
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x48263b
jle 0x48260b
movzx ecx, word [esi + 8]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x4825e1
cmp byte [esi + 0xa], 1
jne 0x4825e1
mov eax, dword [esi + 0x10]
jmp 0x4825f5
test cl, 1
je 0x4825ea
xor eax, eax
jmp 0x4825f5
push 1
push esi
call fcn.00494ad0
add esp, 8
push eax
push 0x4d2204
push ebx
call fcn.0047b1a0
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
push dword [eax + 4]
lea eax, [ebx + 0xdc]
push dword [edi + 0x10]
push eax
push dword [esp + 0x38]
call fcn.0047abd0
mov edx, dword [esp + 0x48]
add esp, 0x10
mov dword [edi + 0x14], 0
test edx, edx
jne 0x4828f6
movzx ecx, word [esi + 8]
test cl, 0x12
je 0x4826a3
mov eax, ecx
test cl, 2
je 0x482668
mov cl, byte [esp + 0x70]
cmp byte [esi + 0xa], cl
je 0x482668
push dword [esp + 0xa8]
push esi
call fcn.004856b0
movzx eax, word [esi + 8]
add esp, 8
test al, 0x12
je 0x4826a3
mov ecx, dword [esi + 0xc]
test eax, 0x4000
je 0x482678
add ecx, dword [esi]
mov eax, dword [esi + 0x20]
mov edi, dword [esp + 0x30]
cmp ecx, dword [eax + 0x70]
jg 0x4814dd
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esp + 0x34]
mov esi, ebx
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x9c]
add ecx, 0x14
jmp 0x47b2d8
mov cl, byte [esi + 0x5a]
test cl, 0x41
je 0x4827ce
cmp byte [edi + 0x95], 0
jne 0x4827ce
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0x30]
test eax, eax
jne 0x482747
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x4827ce
push eax
test cl, 0x40
je 0x482777
push edi
call fcn.004833a0
mov esi, eax
mov eax, dword [esp + 0x34]
push esi
push dword [eax + 0xd4]
mov ecx, dword [eax + 0xd0]
call ecx
push esi
call fcn.00415630
add esp, 0x14
mov esi, dword [esp + 0x2c]
jmp 0x4827ce
cmp dword [esi + 0xc0], 1
jle 0x4827ba
push str.____s
push esi
call fcn.00466e10
mov esi, eax
mov eax, dword [esp + 0x38]
push esi
push edi
push dword [eax + 0xd4]
mov ecx, dword [eax + 0xd0]
push 1
call ecx
add esp, 0x1c
test esi, esi
je 0x482771
push esi
mov esi, dword [esp + 0x30]
push esi
call fcn.00455ea0
add esp, 8
jmp 0x4827ce
mov eax, dword [esi + 0xd0]
push edi
push dword [esi + 0xd4]
push 1
call eax
add esp, 0x10
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
cmp eax, dword [0x4e6104]
jl 0x482811
cmp byte [ecx], 0xad
je 0x47b35c
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x48280f
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0x11
jne 0x482806
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x4827f5
xor eax, eax
mov esi, dword [esp + 0x28]
inc eax
mov dword [esi + 4], eax
inc dword [edi + 0xbc]
jmp 0x47b33c
mov edx, dword [esp + 0x28]
mov dword [edi + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x92], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x4828b1
movzx eax, word [edx + 2]
test ax, ax
je 0x482882
push dword [eax*4 + 0x4cfeec]
push str._s_constraint_failed
push edi
call fcn.0047b1a0
mov eax, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x482893
push eax
push dword [edi + 0x7c]
push str._z:__s
push dword [esp + 0x38]
call fcn.00466e10
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x482893
push dword [edx + 0x10]
push 0x4d2204
push edi
call fcn.0047b1a0
add esp, 0xc
push dword [edi + 0x7c]
mov eax, dword [esp + 0x2c]
push dword [edi + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.00420250
add esp, 0x14
push edi
call fcn.00483db0
mov ecx, dword [esp + 0x30]
mov esi, eax
add esp, 4
cmp esi, 5
jne 0x4828cd
mov dword [edi + 0x28], eax
jmp 0x483016
cmp dword [edi + 0x28], 0
mov esi, 0x65
mov eax, 1
cmovne esi, eax
jmp 0x483016
push 0x15aee
call fcn.004545a0
add esp, 4
mov edx, eax
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
cmp byte [ebx + 0x53], 0
je 0x482f12
mov edx, 7
jmp 0x482f3d
mov edi, dword [esp + 0x30]
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0047b1a0
mov ebx, dword [esp + 0x34]
mov edx, 5
add esp, 8
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov edi, dword [esp + 0x30]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.0047b1a0
mov ebx, dword [esp + 0x34]
mov edx, 5
add esp, 8
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov ebx, dword [esp + 0x2c]
mov edi, eax
mov byte [ebx + 0x51], 0
jmp 0x4828fe
mov ecx, dword [esp + 0x28]
mov eax, 0x66666667
sub ecx, dword [esp + 0x68]
mov esi, 5
mov edi, dword [esp + 0x30]
imul ecx
mov ecx, dword [esp + 0x2c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov byte [ecx + 0x51], 0
mov dword [edi + 0x28], esi
jmp 0x483016
mov edi, dword [esp + 0x30]
push str.FOREIGN_KEY_constraint_failed
push edi
mov dword [edi + 0x28], 0x313
mov byte [edi + 0x92], 2
call fcn.0047b1a0
mov esi, 1
jmp 0x48300f
mov ebx, dword [esp + 0x2c]
mov edx, 8
mov dword [esp + 0x38], edx
jmp 0x4828fe
cmp dl, 5
jne 0x47c7b6
mov ecx, dword [esp + 0x28]
mov eax, 0x66666667
sub ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x38]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov dword [edi + 0x28], esi
jmp 0x483012
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x482a10
push eax
push esi
call fcn.00455ea0
add esp, 8
push 0
push 0x1c
push esi
call fcn.00455fb0
add esp, 0xc
test eax, eax
je 0x482a37
mov ecx, 7
mov esi, str.database_schema_has_changed
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov dword [edi + 0x7c], eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0xc4]
je 0x482a61
push edx
push esi
call fcn.0046f2a0
add esp, 8
mov eax, dword [edi + 0x98]
mov edx, 0x11
mov ebx, dword [esp + 0x2c]
and eax, 0xfffffffd
or eax, 1
mov dword [esp + 0x38], edx
mov dword [edi + 0x98], eax
jmp 0x4828fe
mov ebx, dword [esp + 0x2c]
mov edx, 0x204
mov dword [esp + 0x38], edx
jmp 0x4828fe
push dword [edi]
call fcn.0044e500
mov edx, dword [esp + 0x3c]
add esp, 4
jmp 0x4828f6
push 0x4d6684
push 0x145b1
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
add esp, 0x14
mov edx, 0xb
jmp 0x4828f2
push str.index_corruption
push 0x166e5
push 0x30b
call fcn.0046f1f0
add esp, 0xc
jmp 0x4828f0
mov edi, dword [esp + 0x30]
test dword [esp + 0x278], 0x2400
jne 0x482b09
cmp dword [esp + 0x288], 0
je 0x482b19
lea eax, [esp + 0x270]
push eax
call fcn.00496190
add esp, 4
push 0x4d6684
push 0x14590
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
mov ebx, dword [esp + 0x40]
mov edx, 0xb
add esp, 0x14
mov dword [esp + 0x38], edx
jmp 0x4828fe
push 0x167b1
call fcn.004545a0
mov ebx, dword [esp + 0x30]
mov edx, eax
add esp, 4
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov edi, dword [esp + 0x30]
mov edx, 6
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x38], edx
mov byte [edi + 0x92], 2
jmp 0x4828fe
push dword [esp + 0x2c]
call fcn.0046f220
add esp, 4
mov ebx, dword [esp + 0x2c]
jmp 0x482c41
mov edi, dword [esp + 0x30]
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x40], 1
call fcn.0047b1a0
mov ebx, dword [esp + 0x34]
add esp, 8
mov edx, 1
jmp 0x4828fe
push esi
call fcn.00418920
push eax
push 0x4d2204
push edi
call fcn.0047b1a0
mov edx, dword [esp + 0x48]
add esp, 0x10
mov ebx, dword [esp + 0x2c]
jmp 0x4828fe
mov edi, dword [esp + 0x30]
mov ecx, str.out_of
cmp ebx, 5
mov dword [esp + 0x38], 1
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.0047b1a0
mov ebx, dword [esp + 0x38]
add esp, 0xc
mov edx, 1
jmp 0x4828fe
dec dword [esi + 0xc4]
mov edx, 6
jmp 0x4828f2
push dword [esp + 0xac]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
push ebx
call fcn.00467780
push str.out_of_memory
push edi
call fcn.0047b1a0
mov edx, 7
add esp, 0xc
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov edx, 6
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov ebx, dword [esp + 0x2c]
cmp ecx, 5
movzx eax, cl
mov esi, 2
cmove eax, esi
mov byte [edi + 0x92], al
jmp 0x4828fe
mov edx, 6
jmp 0x4828f2
mov ebx, dword [esp + 0x2c]
jmp 0x482ca8
mov ebx, eax
mov edi, dword [esp + 0x30]
push str.string_or_blob_too_big
push edi
call fcn.0047b1a0
mov edx, 0x12
add esp, 8
mov dword [esp + 0x38], edx
jmp 0x4828fe
cmp dword [edi + 0x44], 0
jl case.0x47b2fa.81
jg 0x482cd6
cmp dword [edi + 0x40], 0
jbe case.0x47b2fa.81
push str.FOREIGN_KEY_constraint_failed
mov dword [edi + 0x28], 0x313
push edi
mov byte [edi + 0x92], 2
call fcn.0047b1a0
mov ebx, dword [esp + 0x34]
mov edx, 1
add esp, 8
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov eax, dword [edi + 0x20]
mov ebx, dword [esp + 0x28]
add eax, 2
mov ecx, dword [esp + 0x3c]
or eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [edi + 0x78], esi
xor edi, edi
cmp dword [ebx + 8], edi
jle 0x482daa
add esi, 8
movzx eax, word [esi]
mov ecx, eax
test eax, 0x1000
je 0x482d8a
test al, 0x12
je 0x482d7f
test eax, 0x4000
je 0x482d5d
lea eax, [esi - 8]
push eax
call fcn.00484b40
add esp, 4
test eax, eax
jne 0x482c39
cmp dword [esi + 0x10], 0
je 0x482d6b
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
je 0x482d7f
lea eax, [esi - 8]
push eax
call fcn.00496140
add esp, 4
test eax, eax
jne 0x482c39
mov eax, 0xefff
and word [esi], ax
movzx ecx, word [esi]
and ecx, 0x202
cmp ecx, 2
jne 0x482da1
lea eax, [esi - 8]
push eax
call fcn.00496140
add esp, 4
inc edi
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x482d32
mov ebx, dword [esp + 0x2c]
cmp byte [ebx + 0x53], 0
jne 0x482c3d
test byte [ebx + 0x5a], 4
mov edi, dword [esp + 0x30]
je 0x482dd8
mov eax, dword [ebx + 0xd0]
push 0
push edi
push dword [ebx + 0xd4]
push 4
call eax
add esp, 0x10
mov ecx, dword [esp + 0x28]
mov eax, 0x66666667
sub ecx, dword [esp + 0x68]
mov esi, 0x64
imul ecx
mov ecx, ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x24], eax
jmp 0x483016
mov edx, dword [esp + 0x28]
movzx eax, byte [esi + 0x51]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x482ed5
test ecx, ecx
je 0x482e2d
push 0x204
push esi
call fcn.0046fa50
add esp, 8
mov al, 1
jmp 0x482e75
test ebx, ebx
je 0x482e5a
cmp dword [esi + 0xbc], 0
jle 0x482e5a
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.0047b1a0
mov ebx, dword [esp + 0x34]
mov edx, 5
add esp, 8
mov dword [esp + 0x38], edx
jmp 0x4828fe
push 1
push edi
call fcn.0047a790
mov esi, eax
add esp, 8
test esi, esi
jne 0x483012
mov esi, dword [esp + 0x2c]
mov al, bl
push edi
mov byte [esi + 0x51], al
call fcn.00483db0
add esp, 4
cmp eax, 5
jne 0x482eb6
mov ecx, dword [esp + 0x28]
mov eax, 0x66666667
sub ecx, dword [esp + 0x68]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov al, 1
sub al, bl
mov byte [esi + 0x51], al
mov esi, 5
mov dword [edi + 0x28], esi
jmp 0x483012
push esi
call fcn.004525e0
add esp, 4
mov esi, 0x65
cmp dword [edi + 0x28], 0
mov eax, 1
cmovne esi, eax
jmp 0x483012
test ebx, ebx
jne 0x482ee0
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x482eef
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
push eax
push edi
call fcn.0047b1a0
mov ebx, dword [esp + 0x34]
mov edx, 1
add esp, 8
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov ebx, esi
jmp 0x482c41
cmp edx, 0x210a
jne 0x482f41
push 0x4d6684
push 0x16fda
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00420250
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x38], edx
cmp dword [edi + 0x7c], 0
jne 0x482f6d
cmp edx, 0xc0a
je 0x482f6d
push edx
call fcn.00416860
push eax
push 0x4d2204
push edi
call fcn.0047b1a0
mov edx, dword [esp + 0x48]
add esp, 0x10
mov dword [edi + 0x28], edx
jmp 0x482f78
mov dword [edi + 0x28], edx
cmp edx, 0xc0a
je 0x482fa7
movzx eax, dl
cmp eax, 0xe
je 0x482f85
cmp eax, 0xa
jne 0x482fa7
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x482f9e
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x482fa0
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x48], eax
mov ecx, dword [esp + 0x28]
mov eax, 0x66666667
sub ecx, dword [esp + 0x68]
push dword [edi + 0x7c]
mov ebx, dword [esp + 0x3c]
push dword [edi + 0xc0]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.00420250
push edi
call fcn.00483db0
add esp, 0x18
cmp ebx, 0xc0a
mov ebx, dword [esp + 0x2c]
jne 0x482ff7
push ebx
call fcn.00467780
add esp, 4
mov al, byte [esp + 0x7b]
mov esi, 1
test al, al
je 0x483012
movzx eax, al
dec eax
push eax
push ebx
call fcn.0046f2a0
add esp, 8
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x8c]
lea ecx, [ecx]
cmp dword [esp + 0x34], ebx
jb 0x483085
mov edx, dword [esp + 0x7c]
ja 0x483035
cmp dword [esp + 0x9c], edx
jb 0x483085
mov eax, dword [ecx + 0x160]
test eax, eax
je 0x483085
add edx, dword [ecx + 0x168]
push dword [ecx + 0x164]
mov dword [esp + 0x80], edx
adc ebx, 0
call eax
mov ecx, dword [esp + 0x30]
add esp, 4
test eax, eax
je 0x483020
or ecx, 0xffffffff
or eax, 0xffffffff
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x8c], eax
mov ebx, dword [esp + 0x2c]
mov edx, 9
mov dword [esp + 0x38], edx
jmp 0x4828fe
mov ecx, dword [esp + 0x9c]
add dword [edi + 0xb4], ecx
cmp dword [edi + 0xa0], 0
je 0x4830a4
push edi
call fcn.004960e0
add esp, 4
mov ecx, dword [esp + 0x37c]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004aa4f4
mov esp, ebp
pop ebp
ret