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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x158
mov eax, dword [0x609e44]
xor eax, esp
mov dword [esp + 0x154], eax
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
push esi
mov esi, ecx
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xac], eax
xor eax, eax
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x84], edx
mov edx, dword [esi]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x60], edi
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x38], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xbc], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0xe0], 1
mov dword [esp + 0xdc], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x50], eax
movlpd qword [esp + 0x94], xmm0
mov dword [esp + 0x88], edx
cmp dword [esi + 0x24], eax
jne 0x4d5b20
cmp byte [edx + 0x51], al
jne 0x4d5b20
mov edx, dword [esp + 0x84]
call fcn.004acc40
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
je 0x4d5b1c
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x4c], 0xffff8000
test ecx, ecx
je 0x4d34f1
mov eax, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x4c], esi
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x4d34ed
lea eax, [eax + 0x10]
inc esi
cmp dword [eax], ecx
jne 0x4d34e1
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0xe8]
mov edx, edi
push eax
push dword [esp + 0x68]
mov ecx, esi
push 0x7f
call fcn.004d2230
mov dword [esp + 0x80], eax
add esp, 0xc
mov eax, dword [edi + 0xc]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x84]
cmp dword [eax], 1
jle 0x4d3531
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x4d3539
mov dword [esp + 0x2c], 0
mov edx, edi
mov ecx, esi
call fcn.004a6d70
test eax, eax
jne 0x4d5b1c
push dword [esp + 0xe8]
mov edx, edi
mov ecx, esi
call fcn.004accd0
add esp, 4
test eax, eax
jne 0x4d5b1c
mov eax, dword [esi + 0x28]
mov dword [esp + 0x18], eax
mov dword [esp + 0xcc], eax
lea ecx, [eax + 1]
mov dword [esi + 0x28], ecx
test byte [edi + 0x24], 0x80
mov dword [esp + 0xd4], ecx
jne 0x4d3590
mov dword [esp + 0x34], 0
jmp 0x4d35b8
mov ecx, dword [edi + 8]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4d35b8
nop dword [eax + eax]
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x4d35b0
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x4d35a0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [edi + 8]
xor edx, edx
mov dword [esp + 0xa0], edx
test ecx, ecx
je 0x4d35fc
mov edx, dword [esi + 0x28]
nop dword [eax + eax]
cmp dword [esp + 0x34], ecx
mov eax, edx
cmovne eax, dword [esp + 0x18]
inc edx
inc dword [esp + 0xa0]
mov dword [esi + 0x28], edx
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x4d35d0
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x4d3626
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xcc]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x84]
push 0
mov dword [ecx + 0x34], eax
movsx eax, word [edi + 0x2a]
mov ecx, dword [esp + 0x8c]
add eax, edx
lea eax, [eax*4 + 6]
add eax, edx
push eax
call fcn.004581b0
mov ecx, eax
add esp, 8
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x4d5b1c
movsx eax, word [edi + 0x2a]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xac], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0xb0], ecx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0xac]
add esp, 0xc
mov ecx, dword [esp + 0xa4]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [edi + 0x2a]
jge 0x4d36c4
mov esi, dword [esp + 0x40]
nop
mov dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x2a]
cmp ecx, eax
jl 0x4d36b0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x84]
xorps xmm0, xmm0
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x140], eax
mov eax, dword [esi + 8]
movlpd qword [esp + 0x144], xmm0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x138], esi
mov dword [esp + 0x150], 0x200
mov dword [esp + 0x14], eax
test eax, eax
je 0x4d3725
mov dword [esp + 0x54], eax
jmp 0x4d374e
cmp dword [esi + 0x74], 0
jne 0x4d3737
mov eax, dword [esi]
test byte [eax + 0x4c], 8
jne 0x4d3737
mov byte [esi + 0x17], 1
mov ecx, esi
call fcn.0047a090
mov dword [esp + 0x14], eax
mov dword [esp + 0x54], eax
test eax, eax
je 0x4d5ab5
mov ecx, dword [esp + 0x64]
xor esi, esi
xor al, al
mov byte [esp + 0x3f], 0
mov byte [esp + 0x27], al
mov dword [esp + 0x68], esi
cmp dword [ecx], esi
jle 0x4d3950
add ecx, 4
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x2c], 0
jne 0x4d3793
mov edx, dword [ecx]
lea ecx, [esp + 0x138]
call fcn.004911c0
test eax, eax
jne 0x4d5ab5
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
xor edi, edi
movsx eax, word [edx + 0x2a]
test eax, eax
jle 0x4d388d
mov eax, dword [edx + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 0x8c], eax
mov edx, dword [eax]
mov esi, dword [ecx + 4]
mov dword [esp + 0xc0], edx
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4d3802
test ecx, ecx
jne 0x4d3814
mov edx, dword [esp + 0x20]
movsx eax, word [edx + 0x28]
cmp edi, eax
jne 0x4d3843
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x68]
mov byte [esp + 0x27], 1
mov dword [esp + 0x80], esi
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x40]
mov dword [eax + edi*4], esi
jmp 0x4d3891
movzx eax, byte [eax + 0x5fad68]
movzx ecx, byte [ecx + 0x5fad68]
sub ecx, eax
jne 0x4d3817
inc edx
jmp 0x4d37c1
mov edx, dword [esp + 0x20]
inc edi
mov eax, dword [esp + 0x8c]
add eax, 0x14
mov dword [esp + 0x8c], eax
movsx ecx, word [edx + 0x2a]
cmp edi, ecx
mov ecx, dword [esp + 0x30]
jl 0x4d37b3
mov esi, dword [esp + 0x68]
jmp 0x4d3891
mov ecx, dword [esp + 0x44]
lea eax, [edi + edi*4]
shl eax, 2
cmp dword [esp + 0x34], 0
je 0x4d3871
test byte [eax + ecx + 0x10], 1
je 0x4d3871
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x3f], 1
mov dword [eax + edi*4], esi
jmp 0x4d3891
test byte [eax + ecx + 0x10], 0x60
jne 0x4d3a55
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
mov dword [eax + edi*4], esi
jmp 0x4d3891
mov ecx, dword [esp + 0x30]
movsx eax, word [edx + 0x2a]
cmp edi, eax
jl 0x4d38d4
cmp dword [esp + 0x34], 0
jne 0x4d3a72
mov ecx, dword [ecx + 4]
call fcn.00493d50
test eax, eax
je 0x4d3a72
mov eax, dword [esp + 0x30]
or edi, 0xffffffff
mov byte [esp + 0x27], 1
mov edx, str.ROWID
mov dword [esp + 0x80], esi
mov eax, dword [eax]
mov dword [esp + 0x6c], eax
jmp 0x4d38e8
test edi, edi
jns 0x4d38df
mov edx, str.ROWID
jmp 0x4d38e8
mov eax, dword [edx + 4]
lea ecx, [edi + edi*4]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push edx
mov edx, 0x17
push dword [eax]
call fcn.004a1b40
add esp, 0xc
cmp eax, 1
je 0x4d5ab5
cmp eax, 2
jne 0x4d392c
mov eax, dword [esp + 0x40]
mov dword [eax + edi*4], 0xffffffff
mov eax, dword [esp + 0x64]
inc esi
mov ecx, dword [esp + 0x30]
add ecx, 0x14
mov dword [esp + 0x68], esi
mov dword [esp + 0x30], ecx
cmp esi, dword [eax]
jl 0x4d3772
mov edi, dword [esp + 0x20]
mov al, byte [esp + 0x27]
mov dl, byte [esp + 0x3f]
add dl, al
test byte [edi + 0x24], 0x60
mov byte [esp + 0x68], dl
je 0x4d3a47
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x8c], ecx
cmp ax, word [edi + 0x2a]
jge 0x4d3a43
xor edi, edi
nop dword [eax]
mov eax, dword [esp + 0x40]
cmp dword [eax + esi*4], 0
jge 0x4d3a23
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
test byte [eax + edi + 0x10], 0x60
je 0x4d3a23
mov edx, dword [eax + edi + 4]
xorps xmm0, xmm0
mov eax, dword [esp + 0x40]
movaps xmmword [esp + 0xf0], xmm0
mov dword [esp + 0x108], 0
movq qword [esp + 0x100], xmm0
mov dword [esp + 0xf4], 0x4b7e40
mov dword [esp + 0x108], eax
test edx, edx
je 0x4d39f0
lea ecx, [esp + 0xf0]
call fcn.0048e580
mov ecx, dword [esp + 0x8c]
cmp byte [esp + 0x27], 0
mov ax, word [esp + 0x104]
jne 0x4d3a07
mov edx, 0xfffd
and ax, dx
test ax, ax
je 0x4d3a23
mov eax, dword [esp + 0x40]
mov ecx, 1
mov dword [esp + 0x8c], ecx
mov dword [eax + esi*4], 0x1869f
mov eax, dword [esp + 0x20]
inc esi
add edi, 0x14
movsx eax, word [eax + 0x2a]
cmp esi, eax
jl 0x4d3980
mov edi, dword [esp + 0x20]
test ecx, ecx
jne 0x4d3964
mov dl, byte [esp + 0x68]
cmp dword [edi + 0x38], 0
je 0x4d3a98
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4d3ab2
push dword [esp + 0xc0]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x24]
call fcn.0045b840
add esp, 0xc
jmp 0x4d5ab5
mov ecx, dword [esp + 0x64]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x1c]
push dword [ecx + eax*4 + 8]
push str.no_such_column:__s
push esi
call fcn.0045b840
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x4d5ab5
xorps xmm0, xmm0
movlpd qword [esp + 0xc0], xmm0
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0x84]
mov dword [esi + 0x40], eax
movzx eax, dl
mov edx, edi
push eax
push dword [esp + 0x44]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x94], eax
call fcn.004b49b0
add esp, 8
mov dword [esp + 0xb4], 0
cmp dword [ebp + 0x10], 5
mov ecx, eax
mov eax, dword [esp + 0x158]
mov edx, 1
cmove eax, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x158], eax
mov esi, dword [edi + 8]
test esi, esi
je 0x4d3d0a
mov edi, dword [esp + 0xa4]
inc edi
mov dword [esp + 0x48], edi
nop
cmp byte [esp + 0x68], 0
jne 0x4d3ce9
cmp ecx, 1
jg 0x4d3ce9
cmp esi, dword [esp + 0x34]
je 0x4d3ce9
mov edx, dword [esi + 0x24]
test edx, edx
je 0x4d3bad
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xf0]
xorps xmm0, xmm0
mov dword [esp + 0x108], 0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
mov dword [esp + 0xf4], 0x4b7e40
mov dword [esp + 0x108], eax
call fcn.0048e580
cmp byte [esp + 0x27], 0
mov cx, word [esp + 0x104]
jne 0x4d3b9d
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4d3ce9
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0xc0], ecx
cmp ax, word [esi + 0x32]
jae 0x4d3c79
mov dword [esp + 0x44], ecx
nop dword [eax + eax]
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x4d3beb
mov edx, dword [esp + 0x40]
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x4d3c5a
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0x110], xmm0
mov dword [esp + 0x128], 0
movq qword [esp + 0x120], xmm0
mov edx, dword [eax + ecx + 4]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x114], 0x4b7e40
mov dword [esp + 0x128], eax
test edx, edx
je 0x4d3c37
lea ecx, [esp + 0x110]
call fcn.0048e580
cmp byte [esp + 0x27], 0
mov cx, word [esp + 0x124]
jne 0x4d3c4e
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
mov ecx, dword [esp + 0x44]
setne al
test eax, eax
jne 0x4d3caf
movzx eax, word [esi + 0x32]
inc edi
add ecx, 0x14
mov dword [esp + 0x44], ecx
cmp edi, eax
jl 0x4d3bd0
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0x48]
mov byte [edi], 0
mov eax, dword [esp + 0xb4]
inc edi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x48], edi
mov dword [edx + eax*4], ecx
inc eax
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xb4], eax
test esi, esi
jne 0x4d3b20
jmp 0x4d3d11
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x2c]
inc ecx
mov dword [edx + 0x2c], ecx
movzx eax, word [esi + 0x34]
add eax, ecx
cmp dword [ebp + 0x10], 0xb
mov dword [edx + 0x2c], eax
jne 0x4d3ce3
cmp byte [esi + 0x36], 5
mov edx, 1
mov eax, dword [esp + 0x158]
cmove eax, edx
mov dword [esp + 0x158], eax
mov edi, dword [esp + 0x48]
jmp 0x4d3cfd
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x2c]
inc ecx
mov dword [edx + 0x2c], ecx
movzx eax, word [esi + 0x34]
add eax, ecx
mov dword [edx + 0x2c], eax
test ecx, ecx
jne 0x4d3c80
jmp 0x4d3c7d
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb4]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [edx + ecx*4], eax
cmp dword [esp + 0x158], 0
je 0x4d3d49
mov eax, dword [esp + 0xa0]
inc eax
push eax
push 1
push dword [esp + 0xac]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp byte [edi + 0x12], 0
mov eax, dword [esp + 0x14]
jne 0x4d3d5a
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x74], 0
jne 0x4d3d6d
cmp dword [esp + 0x30], 0
mov byte [esp + 0x7f], 0
je 0x4d3d72
mov byte [esp + 0x7f], 1
mov esi, dword [edi + 0x74]
test esi, esi
je 0x4d3d7d
mov edx, esi
jmp 0x4d3d8d
mov dword [esp + 0x14], eax
mov esi, edi
mov eax, dword [esp + 0x54]
mov edx, edi
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x4c]
mov eax, 1
mov edi, dword [edx + 0x54]
shl eax, cl
test edi, eax
jne 0x4d3db5
bts edi, ecx
mov dword [edx + 0x54], edi
cmp ecx, 1
jne 0x4d3db5
mov ecx, edx
call fcn.004ab2f0
mov ecx, dword [esp + 0x4c]
mov eax, dword [esi + 0x50]
mov edx, dword [esp + 0x20]
bts eax, ecx
mov dword [esi + 0x50], eax
mov al, byte [esp + 0x7f]
or byte [esi + 0x14], al
cmp dword [edx + 0x38], 0
mov esi, dword [esp + 0x1c]
jne 0x4d3e5e
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xac]
mov edi, dword [esi + 0x2c]
inc edi
cmp byte [esp + 0x3f], 0
mov dword [esp + 0x58], edi
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xa8], eax
mov dword [esi + 0x2c], edi
mov dword [esp + 0x28], edi
jne 0x4d3e16
cmp dword [esp + 0x74], 0
jne 0x4d3e16
mov eax, dword [esp + 0x30]
mov ecx, edi
test eax, eax
je 0x4d3e2d
movsx ecx, word [edx + 0x2a]
lea eax, [edi + 1]
add ecx, edi
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x2c], ecx
cmp byte [esp + 0x68], 0
jne 0x4d3e3f
cmp dword [esp + 0x74], 0
jne 0x4d3e3f
test eax, eax
je 0x4d3e4b
lea eax, [ecx + 1]
mov dword [esp + 0x58], eax
mov ecx, eax
mov dword [esi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0xb8], eax
movsx eax, word [edx + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x4d3e88
mov ecx, dword [esi + 0xf4]
mov eax, dword [edx]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xec], esi
mov dword [esi + 0xf4], eax
jmp 0x4d3ea4
mov eax, dword [esp + 0x98]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x60]
jne 0x4d3ee0
test ecx, ecx
je 0x4d3ec6
push dword [esp + 0x18]
mov ecx, esi
push 0
push 0
push edi
call fcn.004acdb0
add esp, 0x10
mov edx, edi
lea ecx, [esp + 0x138]
call fcn.004911c0
test eax, eax
jne 0x4d5a9d
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x38], 0
je 0x4d3f0d
push dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [esp + 0x48]
push dword [esp + 0x78]
push dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x9c]
call fcn.004d5b70
add esp, 0x18
jmp 0x4d5a9d
mov edi, dword [esi + 0x38]
mov eax, dword [esp + 0x88]
dec edi
mov dword [esi + 0x38], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x48], edi
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
mov eax, dword [esp + 0x1c]
je 0x4d3fd0
cmp dword [eax + 0x78], 0
jne 0x4d3fd0
cmp byte [eax + 0x12], 0
jne 0x4d3fd0
cmp dword [esp + 0xb0], 0
mov esi, dword [esp + 0x14]
jne 0x4d3fd4
inc dword [eax + 0x2c]
mov ecx, dword [esi + 0x6c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0xdc], eax
cmp dword [esi + 0x70], ecx
jg 0x4d3f90
push 0
push eax
push 0
mov edx, 0x45
mov ecx, esi
call fcn.0047a300
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
jmp 0x4d3fd4
mov edi, dword [esp + 0xdc]
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 + 0x5c]
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
mov eax, dword [esp + 0x1c]
jmp 0x4d3fd4
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x2c], 0
jne 0x4d40a7
test byte [edx + 0x24], 0x80
jne 0x4d40a7
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d400f
push dword [esp + 0x28]
mov edx, 0x48
mov ecx, esi
push dword [esp + 0xac]
push 0
call fcn.0047a300
add esp, 0xc
jmp 0x4d4045
mov edx, dword [esp + 0xa8]
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 + 0x28]
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
cmp dword [esp + 0xb0], 0
je 0x4d4270
push 0x10
push edi
push dword [esp + 0x68]
mov esi, 1
mov dword [esp + 0xf0], 0
push dword [esp + 0x28]
mov dword [esp + 0xa4], esi
call fcn.0049a0f0
mov eax, dword [esp + 0xd0]
add esp, 0x10
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xe0], 0
mov dword [esp + 0x4c], edi
jmp 0x4d43d1
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x4d40b5
movzx esi, word [ecx + 0x32]
jmp 0x4d40b7
xor esi, esi
mov eax, dword [eax + 0x2c]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x9c], esi
lea ecx, [eax + 1]
mov dword [esp + 0x78], ecx
movsx ecx, si
mov esi, dword [esp + 0x1c]
add eax, ecx
add eax, dword [esp + 0x2c]
inc eax
cmp dword [esp + 0xb0], 0
mov dword [esp + 0x50], eax
mov dword [esi + 0x2c], eax
jne 0x4d435b
cmp dword [esp + 0x70], 0
je 0x4d40fc
movsx eax, word [edx + 0x2a]
jmp 0x4d40fe
xor eax, eax
mov edx, dword [esp + 0x1c]
lea esi, [ecx + eax]
add esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x38], eax
inc eax
cmp dword [esp + 0x34], 0
mov dword [edx + 0x28], eax
je 0x4d4178
mov eax, dword [esp + 0x78]
lea edx, [eax - 1]
add edx, ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d4145
push edx
push eax
push 0
mov edx, 0x48
mov ecx, edi
call fcn.0047a300
add esp, 0xc
jmp 0x4d4178
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x78]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x14]
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 [edi + 0x6c]
mov dword [esp + 0xbc], edx
cmp dword [edi + 0x70], edx
jg 0x4d41ad
push 0
push esi
push dword [esp + 0x40]
mov edx, 0x64
mov ecx, edi
call fcn.0047a300
mov edi, dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0xbc], eax
add edi, 0x68
jmp 0x4d41df
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
add edi, 0x68
mov edx, dword [esp + 0x38]
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 + 0x34]
test eax, eax
je 0x4d422d
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.004abce0
mov edx, eax
test edx, edx
je 0x4d4229
mov word [edx + 8], si
mov esi, dword [esp + 0x14]
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
je 0x4d4218
push edx
mov edx, 0xfffffff7
call fcn.0047af00
add esp, 4
jmp 0x4d4229
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x2c], 0
je 0x4d4270
mov ecx, dword [esp + 0x84]
sub esp, 8
mov edi, dword [esp + 0x40]
mov edx, edi
mov esi, dword [esp + 0x24]
push dword [esp + 0x68]
push ecx
push dword [esp + 0x74]
mov ecx, esi
push eax
call fcn.004d3040
add esp, 0x18
cmp dword [esp + 0x70], 0
je 0x4d437e
mov dword [esp + 0x18], edi
jmp 0x4d437e
mov edi, dword [esp + 0x1c]
mov eax, 0x1004
cmp byte [edi + 0x12], 0
jne 0x4d42a4
cmp dword [esp + 0x74], 0
jne 0x4d42a4
cmp dword [esp + 0x30], 0
jne 0x4d42a4
cmp byte [esp + 0x68], 0
jne 0x4d42a4
cmp dword [esp + 0x158], 0
mov ecx, 0x100c
cmove eax, ecx
push dword [esp + 0xd4]
mov edx, dword [esp + 0x88]
mov ecx, edi
push eax
push 0
push 0
push dword [esp + 0x70]
call fcn.004e6a40
mov ecx, eax
add esp, 0x14
mov dword [esp + 0xe4], ecx
test ecx, ecx
je 0x4d5a9d
mov eax, dword [ecx + 0x14]
movzx esi, byte [ecx + 0x2e]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x30]
and eax, 1
mov dword [esp + 0x4c], edx
mov dword [esp + 0x94], esi
mov dword [esp + 0xe0], eax
cmp esi, 1
je 0x4d43c9
mov eax, dword [edi + 0x74]
mov ecx, edi
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x18]
mov byte [ecx + 0x14], 1
cmp esi, 2
jne 0x4d43cd
test edx, edx
js 0x4d43cd
cmp edx, eax
je 0x4d43cd
mov ecx, dword [esp + 0xa4]
mov eax, edx
sub eax, dword [esp + 0xcc]
mov edi, edx
cmp byte [eax + ecx], 0
mov eax, dword [esp + 0x18]
je 0x4d43d1
xor esi, esi
mov dword [esp + 0x94], esi
jmp 0x4d43d1
mov edx, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x38], 0
mov dword [esp + 0xbc], eax
mov dword [esp + 0x18], edx
cmp dword [esp + 0x2c], eax
je 0x4d4053
mov eax, dword [esi + 0x74]
mov ecx, esi
mov esi, dword [esp + 0x9c]
test eax, eax
mov edi, dword [esp + 0xc4]
cmovne ecx, eax
mov dword [esp + 0x94], 0
movsx eax, si
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], esi
xor esi, esi
mov byte [ecx + 0x14], 1
mov dword [esp + 0x50], eax
jmp 0x4d4647
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x24], 0x80
jne 0x4d44db
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d440c
mov ecx, dword [esp + 0x14]
mov edx, 0x7f
push 0
push dword [esp + 0x2c]
push eax
call fcn.0047a300
mov edx, dword [esp + 0x60]
add esp, 0xc
add edx, 0x68
jmp 0x4d4446
mov edi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
add edx, 0x68
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
jne 0x4d4647
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xac]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esi + ecx*4], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x94]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4d449d
push 0
push dword [esp + 0x2c]
mov edx, 0x93
mov ecx, eax
push dword [esp + 0xb0]
call fcn.0047a300
add esp, 0xc
jmp 0x4d4647
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, dword [edx]
mov edx, dword [esp + 0xa8]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x93
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d4643
mov eax, dword [esp + 0x9c]
xor esi, esi
movsx edi, ax
mov dword [esp + 0xb4], edi
test edi, edi
jle 0x4d4520
mov eax, dword [esp + 0x78]
mov edx, ecx
mov ecx, dword [esp + 0x14]
add eax, esi
push eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x20]
call fcn.00496db0
mov ecx, dword [esp + 0x2c]
inc esi
add esp, 0xc
cmp esi, edi
jl 0x4d44f2
mov esi, dword [esp + 0x94]
test esi, esi
je 0x4d4582
mov edx, dword [esp + 0xbc]
test edx, edx
je 0x4d456e
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
cmp byte [ecx + 0x51], 0
jne 0x4d456e
mov eax, dword [eax + 0x68]
lea edx, [edx + edx*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.0047af00
mov word [esi], 0xad
add esp, 4
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x78]
mov dword [esp + 0xd0], edi
mov dword [esp + 0x50], eax
jmp 0x4d4643
mov edx, dword [esp + 0x34]
push edi
push ecx
mov ecx, dword [esp + 0x90]
call fcn.004b57d0
mov esi, dword [esp + 0x1c]
add esp, 4
mov edx, 0x5b
mov ecx, esi
push eax
push dword [esp + 0x58]
push edi
push dword [esp + 0x88]
call fcn.0047a620
mov edx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], edx
jg 0x4d45e5
push dword [esp + 0x78]
mov edx, 0x82
mov ecx, esi
push dword [esp + 0x54]
push dword [esp + 0x40]
call fcn.0047a300
mov esi, dword [esp + 0x60]
add esp, 0xc
mov edx, eax
add esi, 0x68
jmp 0x4d4622
mov edi, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
add esi, 0x68
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x78]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0xb4]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x4d463c
mov eax, dword [esi]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x4c]
cmp dword [esp + 0xb0], 0
jne 0x4d48d2
cmp dword [esp + 0x2c], 0
jne 0x4d466d
cmp esi, 2
je 0x4d466d
mov ecx, dword [esp + 0xe4]
call fcn.004e78d0
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x4d4795
mov ecx, dword [esp + 0x94]
xor esi, esi
test ecx, ecx
je 0x4d4728
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xa4]
test eax, eax
js 0x4d46a4
sub eax, dword [esp + 0xcc]
mov byte [eax + edx], 0
test edi, edi
js 0x4d46b5
mov eax, edi
sub eax, dword [esp + 0xcc]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x4d4728
mov ecx, dword [esp + 0xa0]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x4d4728
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x4d46f1
push 0
push 0
push 0
mov edx, 0x11
call fcn.0047a300
add esp, 0xc
mov esi, eax
jmp 0x4d4728
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 0x14]
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 + 0x20]
mov ecx, dword [esp + 0x1c]
push 0
push 0
push dword [esp + 0xac]
push dword [esp + 0xd8]
push 0
push 0x61
call fcn.004ba110
add esp, 0x18
test esi, esi
je 0x4d479b
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x4d4767
mov esi, ecx
mov dword [esi + 0x6c], eax
jmp 0x4d479f
test esi, esi
cmovs esi, eax
mov eax, dword [ecx]
cmp byte [eax + 0x51], 0
je 0x4d4782
mov esi, dword [esp + 0x14]
mov eax, 0x60d7e0
mov dword [eax + 8], edx
jmp 0x4d479f
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x4d479f
mov esi, dword [esp + 0x14]
jmp 0x4d47a3
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x94], 0
je 0x4d495c
test eax, eax
jne 0x4d4857
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x44], eax
je 0x4d4857
cmp edi, eax
je 0x4d4857
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x4d47fa
push dword [esp + 0x50]
mov edx, 0x1d
mov ecx, esi
push dword [esp + 0x60]
push eax
call fcn.0047a300
mov esi, dword [esp + 0x60]
add esp, 0xc
mov edx, eax
add esi, 0x68
jmp 0x4d4830
mov edi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
add esi, 0x68
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x5c]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x4d485b
mov eax, dword [esi]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xd0]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4d485b
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x94], 1
je 0x4d4873
mov eax, dword [esp + 0x1c]
dec dword [eax + 0x38]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x34], 0
mov edx, dword [esp + 0x28]
cmovne edx, dword [esp + 0x50]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d48a7
push 0
push dword [esp + 0x60]
mov edi, esi
push edx
mov edx, 0x32
mov ecx, edi
call fcn.0047a300
add esp, 0xc
jmp 0x4d48d6
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 edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
cmp byte [esp + 0x27], 0
je 0x4d4e90
test eax, eax
jne 0x4d4dd6
mov esi, dword [esp + 0x1c]
cmp dword [esi + 8], eax
je 0x4d4dc9
push dword [esp + 0x58]
mov edx, dword [esp + 0x70]
mov ecx, esi
call fcn.004975a0
mov edi, eax
add esp, 4
cmp edi, dword [esp + 0x58]
je 0x4d4dc9
mov eax, dword [esp + 0x6c]
mov esi, dword [esi + 8]
mov edx, dword [eax + 4]
mov ecx, dword [esi + 0x6c]
and edx, 0x200000
neg edx
sbb edx, edx
add edx, 0x4e
cmp dword [esi + 0x70], ecx
jg 0x4d4d93
push 0
push dword [esp + 0x5c]
mov ecx, esi
push edi
call fcn.0047a300
mov eax, dword [esp + 0x60]
add esp, 0xc
mov edi, dword [esp + 0x14]
lea esi, [eax + 0x6c]
jmp 0x4d4e39
cmp dword [esp + 0x34], 0
jne 0x4d4a43
cmp dword [esp + 0x2c], 0
jne 0x4d4a43
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 0x6c]
mov dword [esp + 0x48], esi
cmp dword [edi + 0x70], esi
jg 0x4d49af
push dword [esp + 0x28]
mov edx, 0x2a
mov ecx, edi
push dword [esp + 0x60]
push dword [esp + 0xb0]
call fcn.0047a300
mov edx, dword [esp + 0x60]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x48], esi
add edx, 0x68
jmp 0x4d49eb
lea edx, [edi + 0x68]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edx]
mov edi, dword [esp + 0xa8]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x2a
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d4a10
push dword [esp + 0x28]
mov edx, 0x20
mov ecx, edi
push esi
push dword [esp + 0x20]
call fcn.0047a300
add esp, 0xc
jmp 0x4d48d6
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
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
jmp 0x4d48d6
mov eax, dword [esp + 0x1c]
dec dword [eax + 0x38]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 0x38]
mov dword [esp + 0x48], edi
cmp dword [esi + 0x70], ecx
jg 0x4d4a7b
push 0
push dword [esp + 0x60]
mov edx, 0x25
mov ecx, esi
push dword [esp + 0x40]
call fcn.0047a300
mov edx, dword [esp + 0x60]
add esp, 0xc
lea esi, [edx + 0x68]
jmp 0x4d4ab5
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
add esi, 0x68
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x6c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4d4cb2
cmp dword [esp + 0x70], 0
jne 0x4d4d8a
cmp dword [esp + 0x34], 0
je 0x4d4c03
mov eax, dword [esp + 0x9c]
xor esi, esi
cwde
test eax, eax
jle 0x4d4b7b
nop word [eax + eax]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x78]
add edx, esi
mov dword [esp + 0x44], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d4b34
push edx
push esi
push dword [esp + 0x40]
mov edx, 0x59
mov ecx, edi
call fcn.0047a300
mov edi, dword [esp + 0x60]
add esp, 0xc
add edi, 0x68
jmp 0x4d4b66
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
add edi, 0x68
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x9c]
inc esi
movsx eax, cx
cmp esi, eax
jl 0x4d4b00
mov ecx, dword [esp + 0x14]
jmp 0x4d4b7e
lea edi, [edx + 0x68]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x4d4ba4
push dword [esp + 0x78]
mov esi, dword [esp + 0x4c]
mov edx, 0x1d
push esi
push dword [esp + 0x20]
call fcn.0047a300
add esp, 0xc
mov edx, eax
jmp 0x4d4bd6
mov esi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x4d48d2
mov eax, dword [edi]
lea ecx, [edx + edx*4]
mov esi, dword [esp + 0x9c]
movsx edx, si
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4d48d2
mov edx, dword [esp + 0xd8]
cmp dword [ecx + 0x70], edx
jg 0x4d4c28
push 0
push dword [esp + 0x2c]
mov edx, 0x7f
push dword [esp + 0x40]
call fcn.0047a300
add esp, 0xc
jmp 0x4d4c5a
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
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 [esp + 0x14]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d4c87
push dword [esp + 0x28]
mov edx, 0x20
push edi
push dword [esp + 0x20]
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.0047a300
add esp, 0xc
jmp 0x4d48d6
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
jmp 0x4d48ca
mov edx, dword [esp + 0xd8]
cmp dword [ecx + 0x70], edx
jg 0x4d4cd7
push 0
push dword [esp + 0x54]
mov edx, 0x7e
push dword [esp + 0x40]
call fcn.0047a300
add esp, 0xc
jmp 0x4d4d09
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x4d4d31
push dword [esp + 0x50]
mov edx, 0x1d
push edi
push dword [esp + 0x20]
mov edi, ecx
call fcn.0047a300
add esp, 0xc
mov edx, eax
jmp 0x4d4d67
mov edi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x4d48d6
mov eax, dword [esi]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d48d6
mov edi, dword [esp + 0x14]
jmp 0x4d48da
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov byte [eax + 1], 0
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x14]
lea esi, [eax + 0x6c]
jmp 0x4d4e39
mov ecx, dword [edi + 0x6c]
lea esi, [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d4e02
push dword [esp + 0x58]
mov edx, dword [esp + 0x84]
mov ecx, edi
push edx
push dword [esp + 0x40]
mov edx, 0x59
call fcn.0047a300
add esp, 0xc
jmp 0x4d4e37
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [esi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x80]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, edi
mov ecx, dword [esi]
mov edx, 0x70
cmp dword [eax + edx], ecx
jg 0x4d4e5e
push 0
push 0
push dword [esp + 0x60]
mov edx, 0xf
mov ecx, edi
call fcn.0047a300
add esp, 0xc
jmp 0x4d4e90
mov edx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov dword [esi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 0x4d4eec
cmp dword [esp + 0x30], 0
jne 0x4d4ef3
mov edx, dword [esp + 0x74]
test edx, edx
je 0x4d5068
xor edi, edi
push dword [ebp + 0x10]
mov edx, dword [esp + 0x78]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
push 3
push 0
push dword [esp + 0x74]
call fcn.004d2f80
or edi, eax
xor ecx, ecx
mov eax, dword [esp + 0x34]
add esp, 0x14
xor esi, esi
mov dword [esp + 0x44], edi
cmp cx, word [eax + 0x2a]
jge 0x4d4ff7
mov dword [esp + 0x80], ecx
jmp 0x4d4f0c
cmp dword [esp + 0x30], 0
je 0x4d4eaa
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
call fcn.004b48c0
mov edi, eax
jmp 0x4d4eac
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov edx, esi
movzx eax, word [ecx + eax + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xbc], eax
call fcn.004a3960
movsx edx, ax
add edx, dword [esp + 0x90]
mov dword [esp + 0x6c], edx
cmp edi, 0xffffffff
je 0x4d4fb6
cmp esi, 0x20
jge 0x4d4f4f
mov eax, 1
mov ecx, esi
shl eax, cl
test edi, eax
jne 0x4d4fb6
test byte [esp + 0xbc], 1
jne 0x4d4fb6
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x6c]
lea edi, [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4d4f7e
push 0
push edx
push 0
mov edx, 0x48
mov ecx, eax
call fcn.0047a300
add esp, 0xc
jmp 0x4d4fd3
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esp + 0x14]
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 0x4d4fd3
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x24]
push esi
push dword [esp + 0x20]
call fcn.00496db0
mov edi, dword [esp + 0x60]
add esp, 0xc
add edi, 0x6c
mov eax, dword [esp + 0x20]
inc esi
mov ecx, dword [esp + 0x80]
add ecx, 0x14
mov dword [esp + 0x80], ecx
movsx eax, word [eax + 0x2a]
cmp esi, eax
jl 0x4d4f04
jmp 0x4d4ffe
mov edi, dword [esp + 0x54]
add edi, 0x6c
cmp byte [esp + 0x27], 0
jne 0x4d5064
cmp dword [esp + 0x34], 0
jne 0x4d5064
mov esi, dword [esp + 0x14]
mov ecx, dword [edi]
cmp dword [esi + 0x70], ecx
jg 0x4d5032
push 0
push dword [esp + 0x5c]
mov edx, 0x4d
mov ecx, esi
push dword [esp + 0x30]
call fcn.0047a300
add esp, 0xc
jmp 0x4d5064
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edi], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
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 + 0x74]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x24]
push 1
push 1
push dword [esp + 0x74]
call fcn.004d2f80
mov edx, dword [esp + 0xcc]
xor edi, edi
mov dword [esp + 0x58], eax
add esp, 0x14
mov eax, dword [esp + 0x20]
mov esi, edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x90], edi
movzx ecx, word [eax + 0x2a]
cmp di, cx
jge 0x4d51c3
xor edx, edx
mov dword [esp + 0x80], edx
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x4d50ea
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d535c
mov ecx, dword [esp + 0x14]
mov edx, 0x48
push 0
push esi
push 0
call fcn.0047a300
add esp, 0xc
jmp 0x4d5190
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0x10]
test al, 0x60
je 0x4d5108
test al, 0x20
je 0x4d5190
dec esi
jmp 0x4d5190
mov eax, dword [esp + 0x40]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x4d5314
cmp dword [esp + 0x2c], 0
je 0x4d5271
cmp dword [esp + 0x70], 0
jne 0x4d5130
mov ecx, dword [esp + 0x9c]
movzx ecx, cx
movsx edx, cx
add edx, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4d515b
push esi
push edx
push dword [esp + 0x40]
mov edx, 0x59
mov ecx, eax
call fcn.0047a300
add esp, 0xc
jmp 0x4d5190
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x38]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
inc edi
add dword [esp + 0x80], 0x14
inc esi
mov edx, dword [esp + 0x80]
mov dword [esp + 0x6c], edi
movzx eax, word [eax + 0x2a]
mov ecx, eax
cwde
cmp edi, eax
mov eax, dword [esp + 0x20]
jl 0x4d50b7
mov edx, dword [esp + 0xb8]
test byte [eax + 0x24], 0x60
je 0x4d51da
mov ecx, dword [esp + 0x1c]
push eax
call fcn.004b5a40
mov eax, dword [esp + 0x24]
add esp, 4
test byte [esp + 0xe8], 1
je 0x4d54f9
push dword [esp + 0xb8]
mov esi, dword [esp + 0x18]
mov edx, eax
mov ecx, esi
call fcn.004b58c0
mov edi, dword [esp + 0x4c]
add esp, 4
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x30]
push dword [esp + 0x2c]
push 1
push dword [esp + 0x78]
push 0x7f
call fcn.004d2ef0
add esp, 0x1c
cmp dword [esp + 0x70], 0
jne 0x4d57fd
cmp dword [esp + 0x34], 0
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x70]
je 0x4d540f
cmp eax, edx
jg 0x4d53b6
push dword [esp + 0x50]
mov edx, 0x1d
mov ecx, esi
push edi
push dword [esp + 0x20]
call fcn.0047a300
mov esi, dword [esp + 0x60]
add esp, 0xc
mov edx, eax
add esi, 0x68
jmp 0x4d53ec
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 8], 0
je 0x4d5190
mov edx, dword [esp + 0x64]
lea eax, [eax + eax*4]
push esi
mov edi, dword [edx + eax*4 + 4]
mov edx, edi
call fcn.004975a0
add esp, 4
mov dword [esp + 0x90], eax
cmp eax, esi
je 0x4d518c
mov edx, dword [edi + 4]
mov edi, dword [esp + 0x1c]
and edx, 0x200000
neg edx
sbb edx, edx
mov edi, dword [edi + 8]
add edx, 0x4e
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4d52d6
push 0
push esi
push eax
mov ecx, edi
call fcn.0047a300
add esp, 0xc
jmp 0x4d518c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
jmp 0x4d518c
test dword [esp + 0xe8], 1
je 0x4d5390
cmp edi, 0x1f
jg 0x4d5390
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x44], eax
jne 0x4d5390
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d535c
mov ecx, dword [esp + 0x14]
mov edx, 0x48
push 0
push esi
push 0
call fcn.0047a300
add esp, 0xc
jmp 0x4d5190
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 0x4d5190
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
push esi
push edi
push dword [esp + 0x20]
call fcn.00496db0
add esp, 0xc
mov dword [esp + 0xe0], 0
jmp 0x4d5190
mov edi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
add esi, 0x68
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x4d545c
mov eax, dword [esi]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xd0]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4d545c
cmp eax, edx
jg 0x4d542d
push dword [esp + 0x28]
mov edx, 0x20
mov ecx, esi
push edi
push dword [esp + 0x20]
call fcn.0047a300
add esp, 0xc
jmp 0x4d545c
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0xb8]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x2a]
jge 0x4d54e2
mov dword [esp + 0x90], ecx
nop word [eax + eax]
mov eax, dword [edx + 4]
movzx eax, word [ecx + eax + 0x10]
test al, 0x60
je 0x4d5498
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x4d54c7
mov eax, dword [esp + 0x40]
cmp dword [eax + esi*4], 0
jge 0x4d54c7
movsx eax, word [edx + 0x28]
cmp esi, eax
je 0x4d54c7
mov ecx, dword [esp + 0x14]
push edi
push esi
push dword [esp + 0x20]
call fcn.00496db0
mov ecx, dword [esp + 0x9c]
add esp, 0xc
mov edx, dword [esp + 0x20]
movsx eax, word [edx + 0x2a]
inc esi
add ecx, 0x14
inc edi
mov dword [esp + 0x90], ecx
cmp esi, eax
jl 0x4d5480
mov eax, dword [esp + 0xb8]
test byte [edx + 0x24], 0x60
je 0x4d5508
mov ecx, dword [esp + 0x1c]
push edx
mov edx, eax
call fcn.004b5a40
add esp, 4
jmp 0x4d5504
cmp dword [esp + 0x70], 0
jne 0x4d57f9
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
lea eax, [esp + 0x158]
push 0
push dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push eax
push edi
push dword [ebp + 0x10]
push dword [esp + 0x7c]
push dword [esp + 0x40]
push dword [esp + 0x74]
push dword [esp + 0xf4]
push dword [esp + 0x3c]
push dword [esp + 0xd4]
call fcn.004b7e80
add esp, 0x2c
cmp dword [esp + 0x158], 0
jne 0x4d555d
cmp byte [esp + 0x68], 0
je 0x4d55f4
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x70]
je 0x4d5677
cmp eax, edx
jg 0x4d5599
push dword [esp + 0x50]
mov edx, 0x1d
mov ecx, esi
push edi
push dword [esp + 0x20]
call fcn.0047a300
mov esi, dword [esp + 0x60]
add esp, 0xc
mov edx, eax
add esi, 0x68
jmp 0x4d55d3
mov edi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
add esi, 0x68
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x4d55f4
mov eax, dword [esi]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xd0]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x30], 0
je 0x4d5621
push dword [esp + 0x8c]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x44]
push 0
push edx
mov edx, dword [esp + 0x30]
call fcn.004b4200
add esp, 0x10
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
push dword [esp + 0xb0]
push dword [esp + 0xdc]
push dword [esp + 0x24]
call fcn.004ae7e0
add esp, 0x10
cmp dword [esp + 0xe0], 0
je 0x4d56ff
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d56cc
push 0
push 0
push dword [esp + 0x20]
mov edx, 0x87
mov ecx, esi
call fcn.0047a300
add esp, 0xc
jmp 0x4d56ff
cmp eax, edx
jg 0x4d5698
push dword [esp + 0x28]
mov edx, 0x20
mov ecx, esi
push edi
push dword [esp + 0x20]
call fcn.0047a300
add esp, 0xc
jmp 0x4d55f8
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d55fc
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x87
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 + 0x30]
cmp edx, 1
jg 0x4d570f
cmp byte [esp + 0x68], 0
je 0x4d5767
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d5734
push 0
push 0
push dword [esp + 0x20]
mov edx, 0x7a
mov ecx, esi
call fcn.0047a300
mov edx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x4d5767
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x7a
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test edx, edx
je 0x4d578c
push dword [esp + 0x8c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x60]
push 0
call fcn.004b4200
add esp, 0x10
mov esi, dword [esp + 0x94]
xor eax, eax
mov edx, dword [esp + 0x20]
cmp esi, 2
mov ecx, dword [esp + 0x1c]
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0xb8]
push dword [esp + 0x68]
push dword [esp + 0xe8]
push dword [esp + 0x30]
call fcn.004b9e60
add esp, 0x1c
cmp dword [esp + 0x30], 0
je 0x4d5804
push dword [esp + 0x8c]
mov edx, dword [esp + 0x24]
push dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x30]
push dword [esp + 0x70]
call fcn.004b5580
add esp, 0x10
jmp 0x4d5804
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0xdc]
test eax, eax
je 0x4d5869
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4d5833
mov ecx, dword [esp + 0x14]
mov edx, 0x52
push 0
push 1
push eax
call fcn.0047a300
add esp, 0xc
jmp 0x4d5869
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0xdc]
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 edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x30]
push dword [esp + 0x2c]
push 2
push dword [esp + 0x78]
push 0x7f
call fcn.004d2ef0
add esp, 0x1c
cmp esi, 1
je 0x4d59c9
cmp esi, 2
jne 0x4d58e2
mov esi, dword [esp + 0x14]
not edi
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4d58c8
push edi
mov edx, esi
call fcn.0047aae0
mov ecx, dword [esp + 0xe8]
add esp, 4
call fcn.004e78d0
jmp 0x4d59cd
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ecx, dword [esp + 0xe4]
call fcn.004e78d0
jmp 0x4d59cd
cmp dword [esp + 0x34], 0
jne 0x4d5949
cmp dword [esp + 0x2c], 0
jne 0x4d5949
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d5915
push 0
push edi
push 0
mov edx, 0xb
mov ecx, esi
call fcn.0047a300
add esp, 0xc
jmp 0x4d59cd
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4d59cd
mov esi, dword [esp + 0x14]
not edi
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4d596e
push edi
mov edx, esi
call fcn.0047aae0
mov edx, dword [esp + 0x58]
add esp, 4
add edx, 0x6c
jmp 0x4d5979
mov ecx, dword [ecx + 0x40]
lea edx, [esi + 0x6c]
mov eax, dword [edx]
mov dword [ecx + edi*4], eax
mov ecx, dword [edx]
cmp dword [esi + 0x70], ecx
jg 0x4d599f
mov edx, dword [esp + 0xd8]
mov ecx, esi
push 0
push edx
push dword [esp + 0x40]
mov edx, 5
call fcn.0047a300
add esp, 0xc
jmp 0x4d59cd
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
jmp 0x4d5934
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x5c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4d59eb
push edx
mov edx, esi
call fcn.0047aae0
add esp, 4
jmp 0x4d59f4
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x12], 0
jne 0x4d5a1b
cmp dword [eax + 0x78], 0
jne 0x4d5a1b
cmp dword [esp + 0xb0], 0
jne 0x4d5a1b
cmp dword [eax + 0x70], 0
je 0x4d5a1b
mov ecx, eax
call fcn.004b5cf0
mov edx, dword [esp + 0xdc]
test edx, edx
je 0x4d5a9d
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4d5a44
push 0
push 1
push edx
mov edx, 0x50
mov ecx, esi
call fcn.0047a300
add esp, 0xc
jmp 0x4d5a73
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 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
mov edx, 1
mov ecx, esi
call fcn.0047c5f0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x4d5a9d
mov ecx, dword [esi + 0x74]
mov edx, str.rows_updated
push 0
push 1
push 0xffffffffffffffff
call fcn.004793e0
add esp, 0xc
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4d5ab5
mov ecx, dword [esp + 0xc0]
mov dword [eax + 0xf4], ecx
mov edx, dword [esp + 0x88]
cmp dword [edx + 0x1f8], 0
je 0x4d5ad7
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x88]
call fcn.00457e30
jmp 0x4d5b1c
mov ecx, dword [esp + 0x40]
cmp ecx, dword [edx + 0x14c]
jae 0x4d5b13
cmp ecx, dword [edx + 0x144]
jb 0x4d5afb
mov eax, dword [edx + 0x140]
mov dword [ecx], eax
mov dword [edx + 0x140], ecx
jmp 0x4d5b1c
cmp ecx, dword [edx + 0x148]
jb 0x4d5b13
mov eax, dword [edx + 0x138]
mov dword [ecx], eax
mov dword [edx + 0x138], ecx
jmp 0x4d5b1c
push ecx
call fcn.00457dc0
add esp, 4
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
call fcn.004aa9b0
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4d5b49
mov ecx, dword [esp + 0x88]
mov edx, eax
call fcn.004936e0
test edi, edi
je 0x4d5b5b
mov ecx, dword [esp + 0x88]
mov edx, edi
call fcn.00492560
mov ecx, dword [esp + 0x15c]
pop edi
pop esi
xor ecx, esp
call fcn.005a6fed
mov esp, ebp
pop ebp
ret