Function at 0x488400
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
mov eax, dword [0x4f3070]
xor eax, esp
mov dword [esp + 0x134], eax
push esi
push edi
mov dword [esp + 0x74], edx
mov esi, ecx
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x94], eax
xor eax, eax
xor edx, edx
mov dword [esp + 0x84], eax
mov edi, dword [ebp + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov dword [esp + 0x28], edi
mov dword [esp + 0xb0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xb8], 1
movq qword [esp + 0xc4], xmm0
mov dword [esp + 0xa0], eax
cmp dword [esi + 0x24], edx
jne 0x488ac6
cmp byte [eax + 0x51], dl
jne 0x488ac6
mov edx, dword [esp + 0x74]
call fcn.00467c90
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
je 0x48ac02
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x30], 0xffff8000
test ecx, ecx
je 0x48852c
mov eax, dword [esi]
xor edx, edx
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x48852c
nop
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x488520
mov dword [esp + 0x30], edx
lea eax, [esp + 0xcc]
mov edx, edi
push eax
push dword [esp + 0x2c]
mov ecx, esi
push 0x7f
call fcn.00487400
mov dword [esp + 0x60], eax
add esp, 0xc
mov eax, dword [edi + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x74]
cmp dword [eax], 1
jle 0x488566
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x48856e
mov dword [esp + 0x2c], 0
mov edx, edi
mov ecx, esi
call fcn.00462d20
test eax, eax
jne 0x48ac02
push dword [esp + 0xcc]
mov edx, edi
mov ecx, esi
call fcn.00467da0
add esp, 4
test eax, eax
jne 0x48ac02
mov eax, dword [esi + 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0x8c], eax
lea edx, [eax + 1]
mov dword [esi + 0x28], edx
test byte [edi + 0x24], 0x80
mov dword [esp + 0xac], edx
jne 0x4885c5
mov dword [esp + 0x40], 0
jmp 0x4885d0
mov ecx, edi
call fcn.00460620
mov dword [esp + 0x40], eax
mov eax, dword [edi + 8]
xor ecx, ecx
mov dword [esp + 0xb4], ecx
test eax, eax
je 0x488606
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x40], eax
cmove edi, edx
inc edx
mov dword [esi + 0x28], edx
inc ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4885e4
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0xb4], ecx
mov edx, dword [esp + 0x94]
test edx, edx
je 0x48862c
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x8c]
mov dword [esi + 0x28], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
push 0
mov dword [edx + 0x34], eax
movsx eax, word [edi + 0x2a]
add eax, ecx
lea eax, [eax*4 + 6]
add eax, ecx
mov ecx, dword [esp + 0xa4]
push eax
call fcn.00417970
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
test edx, edx
je 0x488ac2
movsx eax, word [edi + 0x2a]
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x90], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0x94], ecx
call fcn.004b6f30
mov eax, dword [esp + 0xc0]
add esp, 0xc
mov ecx, dword [esp + 0x88]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [edi + 0x2a]
jge 0x4886d4
mov esi, dword [esp + 0x1c]
nop word [eax + eax]
mov dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x2a]
cmp ecx, eax
jl 0x4886c0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x74]
xorps xmm0, xmm0
movaps xmmword [esp + 0x110], xmm0
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x118], eax
mov eax, dword [esi + 8]
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x110], esi
mov dword [esp + 0x128], 0x200
mov dword [esp + 8], eax
test eax, eax
jne 0x488741
cmp dword [esi + 0x74], eax
jne 0x48872e
mov eax, dword [esi]
test byte [eax + 0x4c], 8
jne 0x48872e
mov byte [esi + 0x17], 1
mov ecx, esi
call fcn.00439340
mov dword [esp + 8], eax
test eax, eax
je 0x488abe
mov ecx, dword [esp + 0x28]
xor esi, esi
xor al, al
mov byte [esp + 0x3f], 0
mov byte [esp + 0x1b], al
mov dword [esp + 0x5c], esi
cmp dword [ecx], esi
jle 0x48898b
lea edi, [ecx + 4]
mov dword [esp + 0x34], edi
cmp dword [esp + 0x2c], 0
jne 0x488782
mov edx, dword [edi]
lea ecx, [esp + 0x110]
call fcn.0044ff40
test eax, eax
jne 0x488abe
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x38], ecx
movsx eax, word [eax + 0x2a]
test eax, eax
jle 0x488834
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x60], eax
mov edi, dword [edi + 4]
mov esi, dword [eax]
sub edi, esi
nop
movzx eax, byte [esi]
movzx edx, byte [esi + edi]
cmp eax, edx
jne 0x4887f3
test eax, eax
jne 0x488805
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
movsx eax, word [esi + 0x28]
cmp ecx, eax
jne 0x488880
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x5c]
mov byte [esp + 0x1b], 1
mov dword [esp + 0x6c], esi
mov eax, dword [edi]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1c]
mov dword [eax + ecx*4], esi
jmp 0x488834
movzx ecx, byte [eax + 0x4e4590]
movzx eax, byte [edx + 0x4e4590]
sub ecx, eax
jne 0x488808
inc esi
jmp 0x4887b0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x60]
inc ecx
mov edi, dword [esp + 0x34]
add eax, 0x14
movsx edx, word [esi + 0x2a]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x60], eax
cmp ecx, edx
jl 0x4887a7
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
movsx eax, word [eax + 0x2a]
cmp ecx, eax
jl 0x4888cd
cmp dword [esp + 0x40], 0
jne 0x488b0e
mov ecx, dword [edi + 4]
call fcn.00452d70
test eax, eax
je 0x488b0e
mov eax, dword [esp + 0x34]
or edi, 0xffffffff
mov dword [esp + 0x38], edi
mov edx, str.ROWID
mov byte [esp + 0x1b], 1
mov dword [esp + 0x6c], esi
mov eax, dword [eax]
mov dword [esp + 0x78], eax
jmp 0x4888e5
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0x70]
je 0x4888ab
lea eax, [ecx + ecx*4]
test byte [edx + eax*4 + 0x10], 1
je 0x4888ab
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov byte [esp + 0x3f], 1
mov dword [eax + ecx*4], esi
jmp 0x488834
lea eax, [ecx + ecx*4]
test byte [edx + eax*4 + 0x10], 0x60
jne 0x488aa4
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], esi
jmp 0x488834
test ecx, ecx
jns 0x4888d8
mov edx, str.ROWID
jmp 0x4888e5
mov eax, dword [esp + 0x10]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 4]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x30]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
cmp byte [eax + 0xa5], 0
jne 0x488963
cmp byte [ecx + 0xcc], 0
jne 0x488963
mov ecx, dword [eax + 0x150]
test ecx, ecx
je 0x488963
mov edi, dword [esp + 0xc]
push dword [edi + 0xf4]
push esi
push edx
mov edx, dword [esp + 0x1c]
push dword [edx]
push 0x17
push dword [eax + 0x154]
call ecx
mov edi, dword [esp + 0x50]
add esp, 0x18
cmp eax, 1
je 0x488b53
test eax, eax
je 0x488953
cmp eax, 2
jne 0x488b35
cmp eax, 2
jne 0x488963
mov eax, dword [esp + 0x1c]
mov dword [eax + edi*4], 0xffffffff
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x28]
inc esi
mov edi, dword [esp + 0x34]
add edi, 0x14
mov dword [esp + 0x5c], esi
mov dword [esp + 0x34], edi
cmp esi, dword [ecx]
jl 0x488765
mov edi, dword [esp + 0x10]
mov al, byte [esp + 0x1b]
mov dl, byte [esp + 0x3f]
add dl, al
test byte [edi + 0x24], 0x60
mov byte [esp + 0x58], dl
je 0x488a8f
nop
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x60], ecx
cmp ax, word [edi + 0x2a]
jge 0x488a8b
xor edi, edi
nop word [eax + eax]
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi*4], 0
jge 0x488a6b
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
test byte [eax + edi + 0x10], 0x60
je 0x488a6b
mov edx, dword [eax + edi + 4]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0xe8], 0
movaps xmmword [esp + 0xd0], xmm0
movq qword [esp + 0xe0], xmm0
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x60]
mov word [esp + 0xe4], ax
mov dword [esp + 0xd4], 0x471520
test edx, edx
je 0x488a43
lea ecx, [esp + 0xd0]
call fcn.0044d840
mov ax, word [esp + 0xe4]
mov ecx, dword [esp + 0x60]
cmp byte [esp + 0x1b], 0
jne 0x488a52
mov edx, 0xfffd
and ax, dx
test ax, ax
je 0x488a6b
mov eax, dword [esp + 0x1c]
mov ecx, 1
mov dword [esp + 0x60], ecx
mov dword [eax + esi*4], 0x1869f
mov eax, dword [esp + 0x10]
inc esi
add edi, 0x14
movsx eax, word [eax + 0x2a]
cmp esi, eax
jl 0x4889c0
mov edi, dword [esp + 0x10]
test ecx, ecx
jne 0x4889a0
mov dl, byte [esp + 0x58]
cmp dword [edi + 0x38], 0
je 0x488b71
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x488b82
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
push dword [eax + ecx*4]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x14]
call fcn.0041abf0
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0xc8]
test ecx, ecx
je 0x488ade
mov eax, dword [esp + 0xc4]
mov dword [ecx + 0xf4], eax
mov esi, dword [esp + 0xa0]
test edx, edx
je 0x48aca0
test esi, esi
je 0x48ac41
cmp dword [esi + 0x1f8], 0
je 0x48ac09
mov ecx, esi
call fcn.00417580
jmp 0x48aca0
mov edi, dword [esp + 0x28]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0xc]
push dword [edi + eax*4 + 8]
push str.no_such_column:__s
push esi
call fcn.0041abf0
mov edx, dword [esp + 0x28]
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x488ac6
mov esi, dword [esp + 0xc]
push str.authorizer_malfunction
push esi
call fcn.0041abf0
add esp, 8
mov dword [esi + 0xc], 1
jmp 0x488abe
mov esi, dword [esp + 0xc]
push str.not_authorized
push esi
call fcn.0041abf0
add esp, 8
mov dword [esi + 0xc], 0x17
jmp 0x488abe
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x74]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0x44], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, 0
je 0x488bb9
movzx eax, dl
mov ecx, edi
mov edx, dword [esp + 0x1c]
push eax
call fcn.0046ecd0
add esp, 4
mov dword [esp + 0x38], eax
mov ecx, eax
jmp 0x488bbf
xor ecx, ecx
mov dword [esp + 0x38], ecx
cmp dword [ebp + 0x10], 5
mov edx, 1
mov eax, dword [esp + 0x138]
cmove eax, edx
xor edi, edi
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], edi
mov esi, dword [eax + 8]
test esi, esi
je 0x488d82
nop
cmp byte [esp + 0x58], 0
jne 0x488f78
cmp ecx, 1
jg 0x488f78
cmp esi, dword [esp + 0x40]
je 0x488f78
mov edx, dword [esi + 0x24]
test edx, edx
je 0x488c87
xorps xmm0, xmm0
mov dword [esp + 0xe8], 0
xor eax, eax
movq qword [esp + 0xe0], xmm0
mov word [esp + 0xe4], ax
lea ecx, [esp + 0xd0]
mov eax, dword [esp + 0x1c]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xd4], 0x471520
mov dword [esp + 0xe8], eax
call fcn.0044d840
cmp byte [esp + 0x1b], 0
mov cx, word [esp + 0xe4]
jne 0x488c77
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x488f78
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0x70], ecx
cmp ax, word [esi + 0x32]
jae 0x488d54
mov dword [esp + 0x60], ecx
nop
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x488cbb
mov edx, dword [esp + 0x1c]
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x488d34
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
mov dword [esp + 0x108], 0
mov edx, dword [eax + ecx + 4]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov word [esp + 0x104], cx
mov dword [esp + 0xf4], 0x471520
mov dword [esp + 0x108], eax
test edx, edx
je 0x488d19
lea ecx, [esp + 0xf0]
call fcn.0044d840
mov cx, word [esp + 0x104]
cmp byte [esp + 0x1b], 0
jne 0x488d28
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
mov ecx, dword [esp + 0x60]
setne al
test eax, eax
jne 0x488f48
movzx eax, word [esi + 0x32]
inc edi
add ecx, 0x14
mov dword [esp + 0x60], ecx
cmp edi, eax
jl 0x488ca0
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x88]
mov byte [edi + eax + 1], 0
mov eax, dword [esp + 0x90]
mov dword [eax + edi*4], ecx
inc edi
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x5c], edi
test esi, esi
jne 0x488bf0
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + edi*4], eax
cmp dword [esp + 0x138], 0
je 0x488dba
mov eax, dword [esp + 0xb4]
inc eax
push eax
push 1
push dword [esp + 0x90]
call fcn.004b6f30
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x488dcb
mov eax, dword [esp + 8]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x54], 0
jne 0x488de1
cmp dword [esp + 0x38], 0
mov dword [esp + 0x60], 0
je 0x488de9
mov dword [esp + 0x60], 1
mov eax, dword [esi + 0x74]
test eax, eax
mov ecx, dword [esp + 0x30]
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edx, dword [esi + 0x54]
test edx, eax
jne 0x488e19
bts edx, ecx
mov dword [esi + 0x54], edx
cmp ecx, 1
jne 0x488e19
mov ecx, esi
call fcn.00466380
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 0x50]
mov edx, dword [esp + 0x10]
bts eax, ecx
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x60]
or byte [esi + 0x14], al
cmp dword [edx + 0x38], 0
mov esi, dword [esp + 0xc]
jne 0x488eac
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x54]
mov eax, dword [eax + edi*4]
inc dword [esi + 0x2c]
cmp byte [esp + 0x3f], 0
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x20], edi
jne 0x488e6d
test ecx, ecx
jne 0x488e6d
mov eax, dword [esp + 0x38]
test eax, eax
je 0x488e81
lea eax, [edi + 1]
mov dword [esp + 0x7c], eax
movsx eax, word [edx + 0x2a]
add eax, edi
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x38]
cmp byte [esp + 0x58], 0
jne 0x488e90
test ecx, ecx
jne 0x488e90
test eax, eax
je 0x488e9a
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esp + 0xa4], eax
movsx eax, word [edx + 0x2a]
add dword [esi + 0x2c], eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x488ed4
mov eax, dword [esi + 0xf4]
mov dword [esp + 0xc4], eax
mov eax, dword [edx]
mov dword [esi + 0xf4], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc8], esi
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x98]
jne 0x488f13
test eax, eax
je 0x488ef9
push dword [esp + 0x14]
mov ecx, esi
push 0
push 0
push edi
call fcn.00467df0
add esp, 0x10
mov edx, edi
lea ecx, [esp + 0x110]
call fcn.0044ff40
test eax, eax
jne 0x488abe
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x38], 0
je 0x488f98
push dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [esp + 0x24]
mov edi, dword [esp + 0x34]
push dword [esp + 0x84]
push edi
push edx
mov edx, dword [esp + 0x8c]
call fcn.0048ace0
mov edx, dword [esp + 0x34]
add esp, 0x18
jmp 0x488ac6
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x5c]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
cmp dword [ebp + 0x10], 0xb
mov dword [edx + 0x2c], eax
jne 0x488f8b
cmp byte [esi + 0x36], 5
jne 0x488f8b
mov dword [esp + 0x138], 1
jmp 0x488f8b
mov edx, dword [esp + 0xc]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
mov dword [edx + 0x2c], eax
test ecx, ecx
jne 0x488d64
jmp 0x488d58
mov eax, dword [esp + 0xa0]
dec dword [esi + 0x38]
mov edi, dword [esi + 0x38]
mov dword [esp + 0x34], edi
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
mov dword [esp + 0x50], edi
or eax, ecx
je 0x489046
cmp dword [esi + 0x78], 0
jne 0x489046
cmp byte [esi + 0x12], 0
jne 0x489046
cmp dword [esp + 0x94], 0
jne 0x489046
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov esi, dword [esp + 8]
mov dword [esp + 0xc0], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48900a
push 0
push eax
push 0
mov edx, 0x45
mov ecx, esi
call fcn.004396f0
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x48904a
mov edi, dword [esp + 0xc0]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x48904a
mov esi, dword [esp + 8]
cmp dword [esp + 0x2c], 0
jne 0x489140
test byte [edx + 0x24], 0x80
jne 0x489140
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x489085
push dword [esp + 0x20]
mov edx, 0x48
mov ecx, esi
push dword [esp + 0xa0]
push 0
call fcn.004396f0
add esp, 0xc
jmp 0x4890bb
mov edx, dword [esp + 0x9c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x24], eax
inc eax
mov dword [edx + 0x28], eax
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x70], ecx
jg 0x489101
push dword [esp + 0x9c]
mov edx, 0x64
mov ecx, esi
push 0
push dword [esp + 0x2c]
call fcn.004396f0
add esp, 0xc
mov dword [esp + 0x84], eax
jmp 0x48934f
mov edi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x9c]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x489353
mov eax, dword [esp + 0x40]
test eax, eax
je 0x48914e
movzx eax, word [eax + 0x32]
jmp 0x489150
xor eax, eax
mov ecx, dword [esp + 0xc]
movsx edi, ax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [ecx + 0x2c]
inc eax
add eax, edi
mov dword [esp + 0x60], edi
add dword [ecx + 0x2c], eax
inc esi
cmp dword [esp + 0x94], 0
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], eax
jne 0x48930c
cmp dword [esp + 0x68], 0
je 0x489196
movsx eax, word [edx + 0x2a]
jmp 0x489198
xor eax, eax
lea esi, [eax + edi]
mov eax, dword [ecx + 0x28]
add esi, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
inc eax
cmp dword [esp + 0x40], 0
mov dword [ecx + 0x28], eax
je 0x489215
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x48]
dec edx
add edx, edi
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4891dc
push edx
push dword [esp + 0x4c]
mov edx, 0x48
mov ecx, eax
push 0
call fcn.004396f0
add esp, 0xc
jmp 0x489215
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x48]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x84], edx
cmp dword [ecx + 0x70], edx
jg 0x489245
push 0
push esi
push dword [esp + 0x2c]
mov edx, 0x64
call fcn.004396f0
add esp, 0xc
mov dword [esp + 0x84], eax
jmp 0x489278
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4892c7
mov ecx, dword [esp + 0xc]
mov edx, eax
call fcn.00466cd0
mov edx, eax
test edx, edx
je 0x4892c3
mov word [edx + 8], si
mov esi, dword [esp + 8]
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
je 0x4892b1
push edx
mov edx, 0xfffffff7
call fcn.0043a4e0
add esp, 4
jmp 0x4892c3
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x2c], 0
mov ecx, dword [esp + 0xc]
je 0x489308
mov edx, dword [esp + 0x74]
sub esp, 8
push dword [esp + 0xa0]
push edx
push dword [esp + 0x38]
mov edx, dword [esp + 0x38]
push eax
call fcn.004880a0
mov eax, dword [esp + 0x2c]
add esp, 0x18
cmp dword [esp + 0x68], 0
mov ecx, dword [esp + 0xc]
cmovne eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x48]
cmp dword [esp + 0x2c], 0
je 0x489347
mov eax, dword [ecx + 0x74]
test eax, eax
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0xc4]
cmovne ecx, eax
xor eax, eax
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x30], eax
mov byte [ecx + 0x14], 1
mov dword [esp + 0x60], esi
jmp 0x4897d1
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x94], 0
je 0x4893a9
push 0x10
push edi
push dword [esp + 0xa0]
mov dword [esp + 0xc8], 0
push edx
mov dword [esp + 0x40], 1
call fcn.00457c40
mov edi, dword [esp + 0xd8]
add esp, 0x10
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xb8], 0
mov dword [esp + 0x70], edi
mov dword [esp + 0x60], eax
jmp 0x489476
cmp byte [edx + 0x12], 0
mov eax, 4
jne 0x4893d9
cmp dword [esp + 0x54], 0
jne 0x4893d9
cmp dword [esp + 0x38], 0
jne 0x4893d9
cmp byte [esp + 0x58], 0
jne 0x4893d9
cmp dword [esp + 0x138], 0
mov ecx, 0xc
cmove eax, ecx
push dword [esp + 0xac]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x10]
push eax
push 0
push 0
push dword [esp + 0xa8]
call fcn.0049ac30
mov ecx, eax
add esp, 0x14
mov dword [esp + 0xbc], ecx
test ecx, ecx
je 0x488abe
mov eax, dword [ecx + 0x14]
movzx edx, byte [ecx + 0x2e]
mov edi, dword [ecx + 0x18]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x30]
and eax, 1
mov dword [esp + 0x70], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0xb8], eax
cmp edx, 1
je 0x489476
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
cmp edx, 2
jne 0x489476
test edi, edi
js 0x489476
mov eax, dword [esp + 0x14]
cmp edi, eax
je 0x48947a
mov ecx, dword [esp + 0x88]
mov eax, edi
sub eax, dword [esp + 0x8c]
cmp byte [eax + ecx], 0
mov eax, 0
cmovne edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x24], 0x80
jne 0x4895ab
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4894ac
push 0
push dword [esp + 0x24]
mov edx, 0x80
mov ecx, esi
push eax
call fcn.004396f0
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x4894df
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x80
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x489566
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x90]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [edi + ecx*4], eax
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x70]
cmp dword [esi + 0x70], ecx
jg 0x48952b
push edx
push dword [esp + 0xa0]
mov edx, 0x7a
mov ecx, esi
push dword [esp + 0x2c]
call fcn.004396f0
add esp, 0xc
jmp 0x4897cd
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x9c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x7a
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4897cd
mov edx, dword [esp + 0x84]
test edx, edx
je 0x4897d1
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x4897d1
mov eax, dword [esi + 0x68]
lea edx, [edx + edx*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.0043a4e0
add esp, 4
mov word [esi], 0xae
mov dword [esi + 0x10], 0
jmp 0x4897cd
mov eax, dword [esp + 0x80]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4895ee
nop dword [eax + eax]
mov eax, dword [esp + 0x48]
mov edx, ecx
mov ecx, dword [esp + 8]
add eax, esi
push eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x1c]
call fcn.00455a00
mov ecx, dword [esp + 0x1c]
inc esi
add esp, 0xc
cmp esi, edi
jl 0x4895c0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x48964e
mov edx, dword [esp + 0x84]
test edx, edx
je 0x489636
mov esi, dword [esp + 8]
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x489636
mov eax, dword [esi + 0x68]
lea edx, [edx + edx*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.0043a4e0
mov eax, dword [esp + 0x34]
add esp, 4
mov word [esi], 0xae
mov dword [esi + 0x10], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x44], ecx
jmp 0x4897d1
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0xa0]
call fcn.0046f8e0
mov ecx, dword [esp + 8]
mov esi, eax
mov dword [esp + 0x84], esi
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x48968e
push dword [esp + 0x44]
mov edx, 0x5b
push edi
mov edi, dword [esp + 0x50]
push edi
call fcn.004396f0
add esp, 0xc
mov edx, eax
jmp 0x4896cc
mov esi, dword [esp + 0x48]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x84]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov ecx, dword [eax]
cmp byte [ecx + 0x51], 0
je 0x48971d
mov edx, dword [esp + 0x80]
movsx eax, dx
cmp eax, 0xfffffff4
je 0x4896f2
push esi
mov edx, eax
call fcn.0043a4e0
add esp, 4
mov esi, dword [esp + 8]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x489775
push edi
push dword [esp + 0x48]
mov edx, 0x83
mov ecx, esi
push dword [esp + 0x2c]
call fcn.004396f0
add esp, 0xc
mov edx, eax
jmp 0x4897a8
test edx, edx
jns 0x489725
mov edx, dword [eax + 0x6c]
dec edx
mov eax, dword [eax + 0x68]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x80]
movsx eax, cx
test eax, eax
jns 0x489763
cmp byte [edx + 1], 0
jne 0x489763
cmp eax, 0xfffffffd
jne 0x48974f
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
jmp 0x4896f2
test esi, esi
je 0x4896f2
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
cmp eax, 0xfffffff4
jne 0x4896f2
inc dword [esi + 0xc]
jmp 0x4896f2
push eax
push esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0043a6e0
add esp, 8
jmp 0x4896f6
mov edi, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x83
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x4897c9
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x80]
movsx edi, dx
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x94], 0
jne 0x4899d7
cmp dword [esp + 0x2c], 0
jne 0x4897f7
cmp eax, 2
je 0x4897f7
mov ecx, dword [esp + 0xbc]
call fcn.0049b720
mov ecx, dword [esp + 0x68]
test ecx, ecx
jne 0x489918
mov ecx, dword [esp + 0x30]
xor esi, esi
test ecx, ecx
je 0x489838
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x88]
test eax, eax
js 0x489827
sub eax, dword [esp + 0x8c]
mov byte [eax + edx], 0
test edi, edi
js 0x489838
mov eax, edi
sub eax, dword [esp + 0x8c]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x4898ab
mov ecx, dword [esp + 0xb4]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x4898ab
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x489874
push 0
push 0
push 0
mov edx, 0x11
call fcn.004396f0
add esp, 0xc
mov esi, eax
jmp 0x4898ab
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push 0
push 0
push dword [esp + 0x90]
push dword [esp + 0x98]
push 0
push 0x61
call fcn.004739c0
add esp, 0x18
test esi, esi
je 0x48991e
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x4898ea
mov esi, ecx
mov dword [esi + 0x6c], eax
jmp 0x489922
test esi, esi
cmovs esi, eax
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
je 0x489905
mov esi, dword [esp + 8]
mov eax, 0x4f66a4
mov dword [eax + 8], edx
jmp 0x489922
lea ecx, [esi + esi*4]
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x489922
mov esi, dword [esp + 8]
jmp 0x489926
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x489a66
test ecx, ecx
jne 0x48996a
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x60], ecx
je 0x48996a
cmp edi, ecx
mov edi, dword [esp + 0x34]
je 0x48996e
push dword [esp + 0xa8]
mov edx, 0x1d
push dword [esp + 0x48]
push edi
push ecx
mov ecx, esi
call fcn.00439e90
mov eax, dword [esp + 0x40]
add esp, 0x10
jmp 0x48996e
mov edi, dword [esp + 0x34]
cmp eax, 1
je 0x489981
mov eax, dword [esp + 0xc]
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x50], eax
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0x20]
cmovne edx, dword [esp + 0x44]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4899ac
push 0
push edi
push edx
mov edx, 0x32
mov ecx, esi
call fcn.004396f0
add esp, 0xc
jmp 0x4899db
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x2c]
cmp byte [esp + 0x1b], 0
je 0x489efc
test eax, eax
jne 0x489e52
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x4c]
cmp dword [eax + 8], 0
je 0x489eaf
push edx
mov edx, dword [esp + 0x7c]
mov ecx, eax
call fcn.00456010
mov edx, dword [esp + 0x50]
mov edi, eax
add esp, 4
cmp edi, edx
je 0x489eaf
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0xc]
and edx, 0x200000
neg edx
sbb edx, edx
mov esi, dword [eax + 8]
add edx, 0x4e
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x489e21
push 0
push dword [esp + 0x50]
mov ecx, esi
push edi
call fcn.004396f0
mov esi, dword [esp + 0x14]
add esp, 0xc
mov edx, dword [esp + 0x4c]
jmp 0x489eaf
cmp dword [esp + 0x40], 0
jne 0x489b9f
cmp dword [esp + 0x2c], 0
jne 0x489b9f
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x489aa0
mov edx, dword [esp + 0x34]
mov ecx, esi
push 0
push edx
push dword [esp + 0x2c]
mov edx, 0x25
call fcn.004396f0
add esp, 0xc
jmp 0x489ad3
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
dec dword [eax + 0x38]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x50], edi
mov dword [esp + 0xb0], ecx
cmp dword [esi + 0x70], ecx
jg 0x489b16
push 0
push dword [esp + 0x24]
mov edx, 0x80
mov ecx, esi
push dword [esp + 0x2c]
call fcn.004396f0
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0xb0], eax
jmp 0x489b49
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x80
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x489b6b
push edx
push edi
push dword [esp + 0x1c]
mov edx, 0x20
mov ecx, esi
call fcn.004396f0
add esp, 0xc
jmp 0x4899db
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4899db
mov eax, dword [esp + 0xc]
dec dword [eax + 0x38]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x50], edi
cmp dword [esi + 0x70], ecx
jg 0x489bd1
mov edx, dword [esp + 0x34]
mov ecx, esi
push 0
push edx
push dword [esp + 0x2c]
mov edx, 0x25
call fcn.004396f0
add esp, 0xc
jmp 0x489c04
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0xb0], ecx
test eax, eax
je 0x489d53
cmp dword [esp + 0x68], 0
jne 0x4899df
cmp dword [esp + 0x40], 0
je 0x489d28
mov eax, dword [esp + 0x80]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x489ca6
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x489c6f
mov eax, dword [esp + 0x48]
mov edx, 0x59
mov ecx, dword [esp + 8]
add eax, esi
push eax
push esi
push dword [esp + 0x2c]
call fcn.004396f0
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x489ca1
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x48]
add eax, esi
mov dword [ecx + 0xc], eax
inc esi
cmp esi, edi
jl 0x489c44
mov esi, dword [esp + 8]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x489cd1
push dword [esp + 0x48]
mov edx, 0x1d
mov ecx, esi
push dword [esp + 0x54]
push dword [esp + 0x1c]
call fcn.004396f0
add esp, 0xc
mov edx, eax
jmp 0x489d08
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 8]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x4899db
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x4899db
cmp dword [esi + 0x70], ecx
jg 0x489b16
push 0
push dword [esp + 0x24]
mov edx, 0x80
mov ecx, esi
push dword [esp + 0x2c]
call fcn.004396f0
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x489b49
cmp dword [esi + 0x70], ecx
jg 0x489d73
push 0
push dword [esp + 0x48]
mov edx, 0x7f
mov ecx, esi
push dword [esp + 0x2c]
call fcn.004396f0
add esp, 0xc
jmp 0x489da6
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x489dca
push dword [esp + 0x44]
mov edx, 0x1d
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.004396f0
add esp, 0xc
mov edx, eax
jmp 0x489dfd
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 8]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x4899db
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4899db
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 8]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x4c]
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 4], edi
mov word [eax + 2], cx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
jmp 0x489eaf
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x489e7c
push dword [esp + 0x4c]
mov edx, dword [esp + 0x70]
mov ecx, esi
push edx
push dword [esp + 0x2c]
mov edx, 0x59
call fcn.004396f0
mov edx, dword [esp + 0x58]
add esp, 0xc
jmp 0x489eaf
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x489ecd
push 0
push 0
push edx
mov edx, 0xf
mov ecx, esi
call fcn.004396f0
add esp, 0xc
jmp 0x489efc
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x3f], 0
jne 0x489fc7
cmp dword [esp + 0x38], 0
jne 0x489fd2
mov edx, dword [esp + 0x54]
test edx, edx
je 0x48a0b7
xor esi, esi
push dword [ebp + 0x10]
mov edx, dword [esp + 0x58]
push dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push 3
push 0
push dword [esp + 0x38]
call fcn.00487eb0
mov ecx, dword [esp + 0x24]
or esi, eax
mov dword [esp + 0x80], esi
xor eax, eax
add esp, 0x14
xor esi, esi
cmp ax, word [ecx + 0x2a]
jge 0x48a04b
xor edi, edi
nop dword [eax]
mov eax, dword [ecx + 4]
mov edx, esi
movzx eax, word [edi + eax + 0x10]
mov dword [esp + 0x60], eax
call fcn.00460670
movsx edx, ax
add edx, dword [esp + 0x7c]
cmp dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x78], edx
je 0x48a021
cmp esi, 0x20
jge 0x489fa1
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [esp + 0x6c], eax
jne 0x48a021
test byte [esp + 0x60], 1
jne 0x48a021
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x489fe6
push 0
push edx
push 0
mov edx, 0x48
mov ecx, eax
call fcn.004396f0
jmp 0x48a034
cmp dword [esp + 0x38], 0
je 0x489f1e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
call fcn.0046ebe0
mov esi, eax
jmp 0x489f20
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edx + 0x6c], eax
mov eax, edx
mov edx, dword [esp + 0x78]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x48a037
mov ecx, dword [esp + 8]
push edx
mov edx, dword [esp + 0x14]
push esi
push dword [esp + 0x1c]
call fcn.00455a00
add esp, 0xc
mov ecx, dword [esp + 0x10]
inc esi
add edi, 0x14
movsx eax, word [ecx + 0x2a]
cmp esi, eax
jl 0x489f60
cmp byte [esp + 0x1b], 0
jne 0x48a0b3
cmp dword [esp + 0x40], 0
jne 0x48a0b3
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x48a080
push 0
push dword [esp + 0x50]
mov edx, 0x4d
mov ecx, esi
push dword [esp + 0x28]
call fcn.004396f0
add esp, 0xc
jmp 0x48a0b3
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x54]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x10]
push dword [esp + 0x14]
push 1
push 1
push dword [esp + 0x38]
call fcn.00487eb0
mov edx, dword [esp + 0xb8]
xor edi, edi
mov dword [esp + 0xa0], eax
add esp, 0x14
mov eax, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x7c], edi
movzx ecx, word [eax + 0x2a]
cmp di, cx
jge 0x48a337
xor edx, edx
mov dword [esp + 0x60], edx
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x48a133
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x48a2b8
mov ecx, dword [esp + 8]
mov edx, 0x48
push 0
push esi
push 0
call fcn.004396f0
jmp 0x48a307
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0x10]
test al, 0x60
je 0x48a152
test al, 0x20
lea eax, [esi - 1]
cmove eax, esi
mov esi, eax
jmp 0x48a30a
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x48a284
cmp dword [esp + 0x2c], 0
je 0x48a1db
cmp dword [esp + 0x68], 0
jne 0x48a176
mov ecx, dword [esp + 0x80]
movzx ecx, cx
movsx edx, cx
add edx, eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x48a1a1
push esi
push edx
push dword [esp + 0x2c]
mov edx, 0x59
mov ecx, eax
call fcn.004396f0
jmp 0x48a307
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x24]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x48a30a
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x7c], eax
cmp dword [ecx + 8], 0
je 0x48a30a
push esi
mov edx, eax
call fcn.00456010
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, esi
je 0x48a30a
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc]
mov edx, dword [edx + 4]
mov edi, dword [ecx + 8]
and edx, 0x200000
neg edx
sbb edx, edx
mov ecx, dword [edi + 0x6c]
add edx, 0x4e
cmp dword [edi + 0x70], ecx
jg 0x48a246
push 0
push esi
push eax
mov ecx, edi
call fcn.004396f0
mov edi, dword [esp + 0x78]
jmp 0x48a307
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x6c]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 8], esi
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0xc], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x78]
mov dword [eax + 4], ecx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
jmp 0x48a30a
test dword [esp + 0xcc], 1
je 0x48a2e9
cmp edi, 0x1f
jg 0x48a2e9
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x8c], eax
jne 0x48a2e9
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x48a11b
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x48a30a
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
push esi
push edi
push dword [esp + 0x1c]
call fcn.00455a00
mov dword [esp + 0xc4], 0
add esp, 0xc
mov eax, dword [esp + 0x10]
inc edi
add dword [esp + 0x60], 0x14
inc esi
mov edx, dword [esp + 0x60]
mov dword [esp + 0x6c], edi
movzx ecx, word [eax + 0x2a]
movsx eax, cx
cmp edi, eax
mov eax, dword [esp + 0x10]
jl 0x48a103
mov edx, dword [esp + 0xa4]
test byte [eax + 0x24], 0x60
je 0x48a34e
mov ecx, dword [esp + 0xc]
push eax
call fcn.0046fb90
mov eax, dword [esp + 0x14]
add esp, 4
test byte [esp + 0xcc], 1
mov edi, dword [esp + 8]
je 0x48a53d
push dword [esp + 0xa4]
mov edx, eax
mov ecx, edi
call fcn.0046f990
mov eax, dword [esp + 0x58]
add esp, 4
mov esi, eax
test eax, eax
je 0x48a3c2
mov edi, dword [esp + 0x50]
cmp byte [esi + 8], 0x7f
jne 0x48a3b7
cmp byte [esi + 9], 1
jne 0x48a3b7
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
call fcn.00487330
test eax, eax
je 0x48a3b7
mov ecx, dword [esp + 0xc]
mov edx, esi
push edi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push dword [esp + 0x1c]
call fcn.00487d60
add esp, 0x10
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x48a381
mov edi, dword [esp + 8]
cmp dword [esp + 0x68], 0
jne 0x48a53d
cmp dword [esp + 0x40], 0
je 0x48a44e
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x48a3fb
push dword [esp + 0x44]
mov edx, 0x1d
mov ecx, edi
push dword [esp + 0x54]
push dword [esp + 0x1c]
call fcn.004396f0
add esp, 0xc
mov edx, eax
jmp 0x48a42e
mov esi, dword [esp + 0x14]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x48a4a6
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xa8]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x48a4a6
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x48a473
push dword [esp + 0x20]
mov edx, 0x20
mov ecx, edi
push dword [esp + 0x54]
push dword [esp + 0x1c]
call fcn.004396f0
add esp, 0xc
jmp 0x48a4a6
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0xa4]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x2a]
jge 0x48a520
mov dword [esp + 0x7c], ecx
mov eax, dword [edx + 4]
movzx eax, word [eax + ecx + 0x10]
test al, 0x60
je 0x48a4d9
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x48a508
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi*4], 0
jge 0x48a508
movsx eax, word [edx + 0x28]
cmp esi, eax
je 0x48a508
mov ecx, dword [esp + 8]
push edi
push esi
push dword [esp + 0x1c]
call fcn.00455a00
mov ecx, dword [esp + 0x88]
add esp, 0xc
mov edx, dword [esp + 0x10]
movsx eax, word [edx + 0x2a]
inc esi
add ecx, 0x14
inc edi
mov dword [esp + 0x7c], ecx
cmp esi, eax
jl 0x48a4c1
mov eax, dword [esp + 0xa4]
test byte [edx + 0x24], 0x60
je 0x48a5d1
mov ecx, dword [esp + 0xc]
push edx
mov edx, eax
call fcn.0046fb90
mov edi, dword [esp + 0xc]
add esp, 4
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x68], 0
mov esi, dword [esp + 0x50]
jne 0x48a837
push 0
push dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x140]
push eax
push esi
push dword [ebp + 0x10]
push dword [esp + 0x6c]
push dword [esp + 0x38]
push dword [esp + 0x68]
push dword [esp + 0xcc]
push dword [esp + 0x38]
push dword [esp + 0xb8]
call fcn.00471560
add esp, 0x2c
cmp dword [esp + 0x138], 0
jne 0x48a5a2
mov al, byte [esp + 0x58]
test al, al
je 0x48a633
cmp dword [esp + 0x40], 0
je 0x48a6af
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x48a5da
push dword [esp + 0x44]
mov edx, 0x1d
mov ecx, edi
push esi
push dword [esp + 0x1c]
call fcn.004396f0
add esp, 0xc
mov edx, eax
jmp 0x48a611
mov edi, dword [esp + 8]
jmp 0x48a541
mov esi, dword [esp + 0x14]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x48a62f
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xa8]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov al, byte [esp + 0x58]
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x38], 0
je 0x48a659
mov ecx, dword [esp + 0xc]
movzx eax, al
push eax
push dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x20]
call fcn.0046e520
add esp, 0x10
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push 0xffffffffffffffff
push dword [esp + 0x94]
push dword [esp + 0xb4]
push dword [esp + 0x20]
call fcn.00468dc0
add esp, 0x10
cmp dword [esp + 0xb8], 0
je 0x48a73f
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x48a70c
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x88
mov ecx, edi
call fcn.004396f0
add esp, 0xc
jmp 0x48a73f
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x48a6d4
push dword [esp + 0x20]
mov edx, 0x20
mov ecx, edi
push esi
push dword [esp + 0x1c]
call fcn.004396f0
add esp, 0xc
jmp 0x48a62f
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov al, byte [esp + 0x58]
jmp 0x48a637
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x88
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x38]
cmp edx, 1
jg 0x48a750
mov al, byte [esp + 0x58]
test al, al
je 0x48a7b0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x48a775
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x7b
mov ecx, edi
call fcn.004396f0
mov edx, dword [esp + 0x44]
add esp, 0xc
jmp 0x48a7ac
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x7b
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov al, byte [esp + 0x58]
test edx, edx
je 0x48a7d2
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movzx eax, al
push eax
push dword [esp + 0x20]
push dword [esp + 0x54]
push 0
call fcn.0046e520
add esp, 0x10
mov edx, dword [esp + 0x10]
xor eax, eax
cmp dword [esp + 0x30], 2
mov ecx, dword [esp + 0xc]
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x9c]
push dword [esp + 0x5c]
push dword [esp + 0xc0]
push dword [esp + 0x2c]
call fcn.00473730
add esp, 0x1c
cmp dword [esp + 0x38], 0
je 0x48a837
movzx eax, byte [esp + 0x58]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
push dword [esp + 0x20]
push dword [esp + 0x28]
push dword [esp + 0x34]
call fcn.0046f4a0
add esp, 0x10
mov edx, dword [esp + 0xc0]
test edx, edx
je 0x48a893
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x48a860
push 0
push 1
push edx
mov edx, 0x52
mov ecx, edi
call fcn.004396f0
add esp, 0xc
jmp 0x48a893
mov esi, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x54]
test eax, eax
je 0x48a8e8
mov edi, dword [esp + 0x10]
nop
cmp byte [eax + 8], 0x7f
jne 0x48a8d9
cmp byte [eax + 9], 2
jne 0x48a8d9
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
call fcn.00487330
test eax, eax
je 0x48a8d5
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0xc]
push esi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push edi
call fcn.00487d60
add esp, 0x10
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x54], eax
test eax, eax
jne 0x48a8a0
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
cmp eax, 1
je 0x48a9b2
mov ecx, dword [edi + 0xc]
cmp eax, 2
not esi
mov eax, dword [ecx + 0x3c]
jne 0x48a93a
add eax, dword [ecx + 0x38]
jns 0x48a923
push esi
mov edx, edi
call fcn.00439f90
mov ecx, dword [esp + 0xc0]
add esp, 4
call fcn.0049b720
jmp 0x48a9b2
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0xbc]
call fcn.0049b720
jmp 0x48a9b2
add eax, dword [ecx + 0x38]
jns 0x48a94c
push esi
mov edx, edi
call fcn.00439f90
add esp, 4
jmp 0x48a955
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + esi*4], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x48a97c
mov edx, dword [esp + 0xb0]
mov ecx, edi
push 0
push edx
push dword [esp + 0x2c]
mov edx, 5
call fcn.004396f0
add esp, 0xc
jmp 0x48a9b2
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x34]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x48a9d0
push edx
mov edx, edi
call fcn.00439f90
add esp, 4
jmp 0x48a9d9
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x12], 0
jne 0x48aa00
cmp dword [eax + 0x78], 0
jne 0x48aa00
cmp dword [esp + 0x94], 0
jne 0x48aa00
cmp dword [eax + 0x70], 0
je 0x48aa00
mov ecx, eax
call fcn.0046ff80
mov edx, dword [esp + 0xc0]
test edx, edx
je 0x488abe
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x48aa2d
push 0
push 1
push edx
mov edx, 0x50
mov ecx, edi
call fcn.004396f0
add esp, 0xc
jmp 0x48aa5c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x50
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, word [edi + 0x90]
mov esi, dword [edi]
test ax, ax
je 0x48ab33
mov ecx, dword [edi + 0x74]
lea edx, [eax + eax*4]
call fcn.0043ade0
mov edi, dword [edi + 0x74]
test edi, edi
je 0x48ab2f
test esi, esi
je 0x48aad7
cmp dword [esi + 0x1f8], 0
je 0x48aa9f
mov edx, edi
mov ecx, esi
call fcn.00417580
jmp 0x48ab2f
cmp edi, dword [esi + 0x14c]
jae 0x48aad7
cmp edi, dword [esi + 0x144]
jb 0x48aabf
mov eax, dword [esi + 0x140]
mov dword [edi], eax
mov dword [esi + 0x140], edi
jmp 0x48ab2f
cmp edi, dword [esi + 0x148]
jb 0x48aad7
mov eax, dword [esi + 0x138]
mov dword [edi], eax
mov dword [esi + 0x138], edi
jmp 0x48ab2f
cmp dword [0x4f4248], 0
je 0x48ab25
mov eax, dword [0x4f65d0]
test eax, eax
je 0x48aaf3
push eax
call dword [0x4f4298]
add esp, 4
push edi
call dword [0x4f4274]
sub dword [0x4f6610], eax
add esp, 4
dec dword [0x4f6634]
push edi
call dword [0x4f426c]
mov eax, dword [0x4f65d0]
add esp, 4
test eax, eax
je 0x48ab2f
push eax
call dword [0x4f42a0]
jmp 0x48ab2c
push edi
call dword [0x4f426c]
add esp, 4
mov edi, dword [esp + 8]
mov eax, 1
mov ecx, esi
push 0
push 0xc8
mov word [edi + 0x90], ax
call fcn.00417970
add esp, 8
mov dword [edi + 0x74], eax
test eax, eax
je 0x48abb4
mov ecx, 1
mov dword [eax + 0x20], esi
mov word [eax + 8], cx
mov dword [eax + 0x18], 0
mov dword [eax + 0x48], esi
mov word [eax + 0x30], cx
mov dword [eax + 0x40], 0
mov dword [eax + 0x70], esi
mov word [eax + 0x58], cx
mov dword [eax + 0x68], 0
mov dword [eax + 0x98], esi
mov word [eax + 0x80], cx
mov dword [eax + 0x90], 0
mov dword [eax + 0xc0], esi
mov word [eax + 0xa8], cx
mov dword [eax + 0xb8], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x488abe
mov esi, dword [edi + 0x74]
mov eax, 0x2400
test word [esi + 8], ax
jne 0x48abd4
cmp dword [esi + 0x18], 0
je 0x48abdb
mov ecx, esi
call fcn.00438150
mov eax, 0xa02
mov dword [esi + 0x10], str.rows_updated
mov dword [esi + 0x24], 0
mov dword [esi + 0xc], 0xc
mov word [esi + 8], ax
mov byte [esi + 0xa], 1
jmp 0x488abe
xor edx, edx
jmp 0x488ac2
cmp edx, dword [esi + 0x14c]
jae 0x48ac41
cmp edx, dword [esi + 0x144]
jb 0x48ac29
mov eax, dword [esi + 0x140]
mov dword [edx], eax
mov dword [esi + 0x140], edx
jmp 0x48aca0
cmp edx, dword [esi + 0x148]
jb 0x48ac41
mov eax, dword [esi + 0x138]
mov dword [edx], eax
mov dword [esi + 0x138], edx
jmp 0x48aca0
cmp dword [0x4f4248], 0
je 0x48ac96
mov eax, dword [0x4f65d0]
test eax, eax
je 0x48ac61
push eax
call dword [0x4f4298]
mov edx, dword [esp + 0x20]
add esp, 4
push edx
call dword [0x4f4274]
sub dword [0x4f6610], eax
add esp, 4
dec dword [0x4f6634]
push dword [esp + 0x1c]
call dword [0x4f426c]
mov eax, dword [0x4f65d0]
add esp, 4
test eax, eax
je 0x48aca0
push eax
call dword [0x4f42a0]
jmp 0x48ac9d
push edx
call dword [0x4f426c]
add esp, 4
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.00465bb0
test edi, edi
je 0x48acb8
mov edx, edi
mov ecx, esi
call fcn.004525c0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x48accc
mov edx, eax
mov ecx, esi
call fcn.00451450
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
xor ecx, esp
call fcn.004b4119
mov esp, ebp
pop ebp
ret