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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x128
mov eax, dword [0x4fc040]
xor eax, esp
mov dword [esp + 0x124], eax
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x18], edi
cmp dword [edi + 0x24], 0
mov edx, dword [edi]
mov dword [esp + 0x74], esi
mov dword [esp + 0x9c], eax
mov dword [esp + 0xc0], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x90], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0xcc], 1
mov dword [esp + 0xc4], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x4c], 0
movlpd qword [esp + 0xa4], xmm0
mov dword [esp + 0x94], edx
jne 0x4b3b86
mov edx, dword [esp + 0x84]
call fcn.004848a0
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
je 0x4b3b82
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x58], 0xffff8000
test ecx, ecx
je 0x4b168c
mov eax, dword [edi]
xor edx, edx
mov dword [esp + 0x58], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x4b168c
nop dword [eax]
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x4b1680
mov dword [esp + 0x58], edx
cmp dword [esi + 0x38], 0
jne 0x4b16a4
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x4b16ad
cmp dword [eax + 0x30], 0
je 0x4b16ad
cmp byte [edi + 0x9d], 0
je 0x4b16c2
mov dword [esp + 0xd4], 0
mov dword [esp + 0x5c], 0
jmp 0x4b16f1
lea eax, [esp + 0xdc]
mov edx, esi
push eax
push dword [esp + 0x64]
mov ecx, edi
push 0x81
call fcn.004afb80
mov dword [esp + 0x68], eax
add esp, 0xc
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x84]
mov cl, byte [esi + 0x2b]
mov byte [esp + 0x1f], cl
cmp dword [eax], 1
jle 0x4b1710
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
jmp 0x4b1718
mov dword [esp + 0x34], 0
cmp cl, 1
je 0x4b1724
cmp word [esi + 0x22], 0
jg 0x4b1735
mov edx, esi
mov ecx, edi
call fcn.0047f0f0
test eax, eax
jne 0x4b3b82
push dword [esp + 0x5c]
mov edx, esi
mov ecx, edi
call fcn.00484a20
add esp, 4
test eax, eax
jne 0x4b3b82
mov eax, dword [edi + 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc8], eax
lea ecx, [eax + 1]
mov dword [edi + 0x28], ecx
test byte [esi + 0x1c], 0x80
mov dword [esp + 0xbc], ecx
jne 0x4b1778
mov dword [esp + 0x3c], 0
jmp 0x4b179b
mov ecx, dword [esi + 8]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x4b179b
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x4b1793
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x4b1783
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 8]
xor edx, edx
mov dword [esp + 0xa0], edx
test ecx, ecx
je 0x4b17dc
mov edx, dword [edi + 0x28]
nop
cmp dword [esp + 0x3c], ecx
mov eax, edx
cmovne eax, dword [esp + 0x14]
inc edx
inc dword [esp + 0xa0]
mov dword [edi + 0x28], edx
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x14], eax
test ecx, ecx
jne 0x4b17b0
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x4b1806
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xc8]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x84]
push 0
mov dword [ecx + 0x34], eax
movsx eax, word [esi + 0x22]
mov ecx, dword [esp + 0x98]
add eax, edx
lea eax, [eax*4 + 6]
add eax, edx
push eax
call fcn.00427e60
mov ecx, eax
add esp, 8
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x4b3b82
movsx eax, word [esi + 0x22]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x98], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0x70], ecx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0xac]
add esp, 0xc
mov ecx, dword [esp + 0x64]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 0x22]
jge 0x4b18a4
mov edi, dword [esp + 0x50]
nop dword [eax]
mov dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [esi + 0x22]
cmp ecx, eax
jl 0x4b1890
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x84]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x10c], eax
mov eax, dword [edi + 8]
movlpd qword [esp + 0x114], xmm0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x108], edi
mov dword [esp + 0x110], ecx
mov dword [esp + 0x120], 0x200
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4b1923
cmp dword [edi + 0x7c], eax
jne 0x4b1910
mov eax, dword [edi]
test byte [eax + 0x50], 8
jne 0x4b1910
mov byte [edi + 0x17], 1
mov ecx, edi
call fcn.0044eed0
mov dword [esp + 0x10], eax
test eax, eax
je 0x4b3b72
mov ecx, dword [esp + 0x60]
xor al, al
mov byte [esp + 0x43], al
mov byte [esp + 0x26], al
mov dword [esp + 0x48], 0
cmp dword [ecx], 0
jle 0x4b1b73
lea edi, [ecx + 8]
mov dword [esp + 0x2c], edi
nop dword [eax]
mov ecx, dword [edi + 4]
xor dl, dl
mov byte [esp + 0x27], dl
test ecx, ecx
jne 0x4b1963
mov byte [esp + 0x27], dl
jmp 0x4b1986
mov al, byte [ecx]
test al, al
je 0x4b1986
nop dword [eax]
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x4f2180]
mov al, byte [ecx]
test al, al
jne 0x4b1970
mov byte [esp + 0x27], dl
cmp dword [esp + 0x34], 0
jne 0x4b19a3
mov edx, dword [edi]
lea ecx, [esp + 0x108]
call fcn.00466a70
test eax, eax
jne 0x4b3b72
mov edx, dword [esp + 0x20]
xor esi, esi
xor eax, eax
mov dword [esp + 0x68], esi
cmp ax, word [edx + 0x22]
jge 0x4b1aac
mov eax, dword [edx + 4]
mov cl, byte [esp + 0x27]
mov dword [esp + 0x38], eax
cmp byte [eax + 0xa], cl
jne 0x4b1a41
mov edi, dword [edi + 4]
mov edx, dword [eax]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x4b1a18
test eax, eax
jne 0x4b1a2a
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x68]
movsx eax, word [edx + 0x20]
cmp esi, eax
jne 0x4b1a5e
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x26], 1
mov eax, dword [edi]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x80], eax
mov dword [ecx + esi*4], eax
jmp 0x4b1ab0
movzx ecx, byte [eax + 0x4f2180]
movzx eax, byte [esi + 0x4f2180]
sub ecx, eax
jne 0x4b1a2d
inc edx
jmp 0x4b19d0
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x38]
mov cl, byte [esp + 0x27]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
add eax, 0x10
inc esi
mov dword [esp + 0x38], eax
movzx eax, word [edx + 0x22]
mov dword [esp + 0x68], esi
cmp esi, eax
jge 0x4b1aac
mov eax, dword [esp + 0x38]
jmp 0x4b19c4
cmp dword [esp + 0x3c], 0
je 0x4b1a89
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 1
je 0x4b1a89
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
mov byte [esp + 0x43], 1
mov dword [ecx + esi*4], eax
jmp 0x4b1ab0
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
jne 0x4b1bda
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
mov dword [ecx + esi*4], eax
jmp 0x4b1ab0
mov edi, dword [esp + 0x2c]
movsx eax, word [edx + 0x22]
cmp esi, eax
jl 0x4b1af6
cmp dword [esp + 0x3c], 0
jne 0x4b1bf3
mov ecx, dword [edi + 4]
call fcn.0046a1d0
test eax, eax
je 0x4b1bf3
mov eax, dword [edi]
or esi, 0xffffffff
mov dword [esp + 0xb8], eax
mov edx, str.ROWID
mov eax, dword [esp + 0x48]
mov byte [esp + 0x26], 1
mov dword [esp + 0x80], eax
jmp 0x4b1b0b
test esi, esi
jns 0x4b1b01
mov edx, str.ROWID
jmp 0x4b1b0b
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x58]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x28]
push dword [edx]
mov edx, 0x17
call fcn.00479b90
add esp, 0xc
cmp eax, 1
je 0x4b3b72
cmp eax, 2
jne 0x4b1b4f
mov eax, dword [esp + 0x50]
mov dword [eax + esi*4], 0xffffffff
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x60]
inc eax
mov edi, dword [esp + 0x2c]
add edi, 0x14
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], edi
cmp eax, dword [ecx]
jl 0x4b1950
mov al, byte [esp + 0x43]
mov edx, dword [esp + 0x20]
add al, byte [esp + 0x26]
mov byte [esp + 0x6c], al
test byte [edx + 0x1c], 0x60
je 0x4b1cd2
nop dword [eax]
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x38], ecx
cmp ax, word [edx + 0x22]
jge 0x4b1cd2
xor edi, edi
nop word [eax + eax]
mov eax, dword [esp + 0x50]
cmp dword [eax + esi*4], 0
jge 0x4b1cba
mov eax, dword [edx + 4]
test byte [eax + edi + 0xe], 0x60
je 0x4b1cba
movzx eax, word [eax + edi + 0xc]
test ax, ax
jne 0x4b1c1d
xor edx, edx
jmp 0x4b1c3d
push dword [eax + ecx*8]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x20]
call fcn.0042b560
add esp, 0xc
jmp 0x4b3b72
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x18]
lea eax, [eax + eax*4]
push dword [ecx + eax*4 + 0xc]
push str.no_such_column:__s
push esi
call fcn.0042b560
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x4b3b72
cmp byte [edx + 0x2b], 0
je 0x4b1c27
xor edx, edx
jmp 0x4b1c3d
mov edx, dword [edx + 0x34]
test edx, edx
je 0x4b1c3d
cmp dword [edx], eax
jge 0x4b1c36
xor edx, edx
jmp 0x4b1c3d
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 - 0xc]
mov eax, dword [esp + 0x50]
xorps xmm0, xmm0
movaps xmmword [esp + 0xe0], xmm0
mov dword [esp + 0xf8], 0
movq qword [esp + 0xf0], xmm0
mov dword [esp + 0xe4], 0x490fe0
mov dword [esp + 0xf8], eax
test edx, edx
je 0x4b1c86
lea ecx, [esp + 0xe0]
call fcn.00463850
mov ecx, dword [esp + 0x38]
cmp byte [esp + 0x26], 0
mov ax, word [esp + 0xf4]
jne 0x4b1c9d
mov edx, 0xfffd
and ax, dx
mov edx, dword [esp + 0x20]
test ax, ax
je 0x4b1cba
mov eax, dword [esp + 0x50]
mov ecx, 1
mov dword [esp + 0x38], ecx
mov dword [eax + esi*4], 0x1869f
movsx eax, word [edx + 0x22]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x4b1bb0
test ecx, ecx
jne 0x4b1b90
cmp byte [edx + 0x2b], 1
jne 0x4b1ce0
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4b1cfa
xorps xmm0, xmm0
movlpd qword [esp + 0xb0], xmm0
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0x84]
mov dword [esi + 0x40], eax
movzx eax, byte [esp + 0x6c]
push eax
push dword [esp + 0x54]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0x20]
call fcn.0048d460
add esp, 8
mov dword [esp + 0x7c], eax
cmp dword [ebp + 0x10], 5
jne 0x4b1d32
mov dword [esp + 0x128], 1
mov edx, dword [esp + 0x20]
xor edi, edi
mov dword [esp + 0x68], edi
mov esi, dword [edx + 8]
test esi, esi
je 0x4b1edf
mov edi, dword [esp + 0x64]
inc edi
mov dword [esp + 0x2c], edi
cmp byte [esp + 0x6c], 0
jne 0x4b2042
cmp eax, 1
jg 0x4b2042
cmp esi, dword [esp + 0x3c]
je 0x4b2042
mov edx, dword [esi + 0x24]
test edx, edx
je 0x4b1ddd
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0xe0]
xorps xmm0, xmm0
mov dword [esp + 0xf8], 0
movaps xmmword [esp + 0xe0], xmm0
movq qword [esp + 0xf0], xmm0
mov dword [esp + 0xe4], 0x490fe0
mov dword [esp + 0xf8], eax
call fcn.00463850
cmp byte [esp + 0x26], 0
mov cx, word [esp + 0xf4]
jne 0x4b1dcd
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4b2042
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0xb0], ecx
cmp ax, word [esi + 0x32]
jae 0x4b1ead
mov dword [esp + 0x38], ecx
nop dword [eax + eax]
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x4b1e1b
mov edx, dword [esp + 0x50]
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x4b1e8a
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0xe0], xmm0
mov dword [esp + 0xf8], 0
movq qword [esp + 0xf0], xmm0
mov edx, dword [eax + ecx + 8]
mov eax, dword [esp + 0x50]
mov dword [esp + 0xe4], 0x490fe0
mov dword [esp + 0xf8], eax
test edx, edx
je 0x4b1e67
lea ecx, [esp + 0xe0]
call fcn.00463850
cmp byte [esp + 0x26], 0
mov cx, word [esp + 0xf4]
jne 0x4b1e7e
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
mov ecx, dword [esp + 0x38]
setne al
test eax, eax
jne 0x4b2011
movzx eax, word [esi + 0x32]
inc edi
add ecx, 0x14
mov dword [esp + 0x38], ecx
cmp edi, eax
jl 0x4b1e00
mov ecx, dword [esp + 0xb0]
mov edi, dword [esp + 0x2c]
mov byte [edi], 0
mov eax, dword [esp + 0x68]
inc edi
mov edx, dword [esp + 0x98]
mov dword [esp + 0x2c], edi
mov dword [edx + eax*4], ecx
inc eax
mov esi, dword [esi + 0x14]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
test esi, esi
jne 0x4b1d50
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x98]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + edi*4], eax
cmp dword [esp + 0x128], 0
je 0x4b1f14
mov eax, dword [esp + 0xa0]
inc eax
push eax
push 1
push dword [esp + 0x6c]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x4b1f25
mov eax, dword [esp + 0x10]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x5c], 0
jne 0x4b1f38
cmp dword [esp + 0x7c], 0
mov byte [esp + 0x27], 0
je 0x4b1f3d
mov byte [esp + 0x27], 1
mov eax, dword [esi + 0x7c]
test eax, eax
mov ecx, dword [esp + 0x58]
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edx, dword [esi + 0x58]
test edx, eax
jne 0x4b1f6d
bts edx, ecx
mov dword [esi + 0x58], edx
cmp ecx, 1
jne 0x4b1f6d
mov ecx, esi
call fcn.004832b0
mov ecx, dword [esp + 0x58]
mov eax, dword [esi + 0x54]
bts eax, ecx
mov dword [esi + 0x54], eax
mov al, byte [esp + 0x27]
or byte [esi + 0x14], al
mov esi, dword [esp + 0x20]
cmp byte [esi + 0x2b], 1
je 0x4b2063
mov eax, dword [esp + 0x98]
mov eax, dword [eax + edi*4]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov edx, dword [edi + 0x2c]
inc edx
cmp byte [esp + 0x43], 0
mov dword [esp + 0x54], edx
mov dword [edi + 0x2c], edx
mov dword [esp + 0x28], edx
jne 0x4b1fc7
cmp dword [esp + 0x5c], 0
jne 0x4b1fc7
mov eax, dword [esp + 0x7c]
mov ecx, edx
test eax, eax
je 0x4b1fde
movsx ecx, word [esi + 0x22]
lea eax, [edx + 1]
add ecx, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x7c]
mov dword [edi + 0x2c], ecx
cmp byte [esp + 0x6c], 0
jne 0x4b1ff0
cmp dword [esp + 0x5c], 0
jne 0x4b1ff0
test eax, eax
je 0x4b1ffc
lea eax, [ecx + 1]
mov dword [esp + 0x54], eax
mov ecx, eax
mov dword [edi + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0xac], eax
movsx eax, word [esi + 0x22]
add eax, ecx
mov dword [edi + 0x2c], eax
jmp 0x4b2067
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
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 0x4b2056
cmp byte [esi + 0x36], 5
jne 0x4b2056
mov dword [esp + 0x128], 1
jmp 0x4b2056
mov edx, dword [esp + 0x18]
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 0x4b1eb4
jmp 0x4b1eb1
mov edi, dword [esp + 0x18]
mov cl, byte [esp + 0x1f]
cmp cl, 2
jne 0x4b2092
mov ecx, dword [edi + 0x100]
mov eax, dword [esi]
mov dword [esp + 0xb0], ecx
mov cl, byte [esp + 0x1f]
mov dword [esp + 0xd8], edi
mov dword [edi + 0x100], eax
jmp 0x4b20ae
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xb0], eax
cmp dword [esp + 0x34], 0
jne 0x4b20ed
cmp cl, 2
jne 0x4b20d5
push dword [esp + 0x14]
mov edx, esi
mov ecx, edi
push 0
push 0
push dword [esp + 0x80]
call fcn.00484b50
add esp, 0x10
mov edx, dword [esp + 0x74]
lea ecx, [esp + 0x108]
call fcn.00466a70
test eax, eax
jne 0x4b3b5a
cmp byte [esi + 0x2b], 1
jne 0x4b2120
push dword [ebp + 0x10]
mov edx, dword [esp + 0x88]
mov ecx, edi
push dword [esp + 0x78]
push dword [esp + 0x58]
push dword [esp + 0xc4]
push dword [esp + 0x70]
push esi
call fcn.004b3be0
add esp, 0x18
jmp 0x4b3b5a
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x4b2197
cmp dword [edi + 0x80], 0
jne 0x4b2197
cmp byte [edi + 0x12], 0
jne 0x4b2197
cmp byte [edi + 0x9b], 0
jne 0x4b2197
cmp dword [esp + 0x9c], 0
mov edx, dword [esp + 0x10]
jne 0x4b219b
mov eax, dword [edi + 0x2c]
inc eax
mov dword [edi + 0x2c], eax
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0xc4], eax
cmp dword [edx + 0x70], ecx
jg 0x4b21dc
mov ecx, dword [esp + 0x10]
mov edx, 0x47
push 0
push eax
push 0
call fcn.0044f120
add esp, 0xc
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x34], 0
jne 0x4b2328
test byte [esi + 0x1c], 0x80
jne 0x4b2328
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b2218
push dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, 0x4b
push dword [esp + 0x8c]
push 0
call fcn.0044f120
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4b224e
mov edi, dword [esp + 0xc4]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b219b
mov esi, dword [esp + 0x88]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [edi + 0x28]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], edi
lea eax, [edi + 1]
mov dword [ecx + 0x28], eax
mov esi, dword [edx + 0x6c]
mov dword [esp + 0xa4], esi
cmp dword [edx + 0x70], esi
jg 0x4b2294
push dword [esp + 0x88]
mov ecx, dword [esp + 0x14]
mov edx, 0x76
push 0
push edi
call fcn.0044f120
mov esi, eax
add esp, 0xc
mov dword [esp + 0xa4], esi
jmp 0x4b22c6
lea eax, [esi + 1]
mov dword [edx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x88]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x9c], 0
je 0x4b251c
mov edi, dword [esp + 0x18]
push 0x10
push dword [esp + 0x30]
mov dword [esp + 0xd8], 0
push dword [esp + 0x7c]
mov dword [esp + 0x50], 1
push edi
call fcn.004709d0
mov eax, dword [esp + 0xc0]
add esp, 0x10
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xcc], 0
mov dword [esp + 0x58], edi
jmp 0x4b2641
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4b2336
movzx edx, word [eax + 0x32]
jmp 0x4b2338
xor edx, edx
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x78], edx
lea ecx, [eax + 1]
inc eax
mov dword [esp + 0x70], ecx
movsx ecx, dx
mov edx, dword [esp + 0x34]
add eax, ecx
add eax, edx
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x4c], eax
mov dword [edi + 0x2c], eax
jne 0x4b260a
cmp byte [esp + 0x1f], 2
jne 0x4b2374
movsx eax, word [esi + 0x22]
jmp 0x4b2376
xor eax, eax
mov edi, dword [edi + 0x28]
lea esi, [ecx + eax]
add esi, edx
mov dword [esp + 0x30], edi
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x18]
lea eax, [edi + 1]
mov dword [edx + 0x28], eax
je 0x4b23f7
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
dec edx
add edx, ecx
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b23be
push edx
push dword [esp + 0x74]
mov edx, 0x4b
mov ecx, eax
push 0
call fcn.0044f120
add esp, 0xc
jmp 0x4b23f7
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x70]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x4b
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 + 0x10]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0xa4], edx
cmp dword [ecx + 0x70], edx
jg 0x4b2424
push 0
push esi
push edi
mov edx, 0x76
call fcn.0044f120
add esp, 0xc
mov dword [esp + 0xa4], eax
jmp 0x4b2453
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], edi
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 + 0x3c]
test eax, eax
je 0x4b24a2
mov ecx, dword [esp + 0x18]
mov edx, eax
call fcn.00483aa0
mov edx, eax
test edx, edx
je 0x4b249e
mov word [edx + 8], si
mov esi, dword [esp + 0x10]
mov ecx, dword [esi]
cmp byte [ecx + 0x57], 0
je 0x4b248c
push edx
mov edx, 0xfffffff8
call fcn.0044fcf0
add esp, 4
jmp 0x4b249e
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x34], 0
je 0x4b251c
mov ecx, dword [esp + 0x84]
sub esp, 8
mov edx, edi
push dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x2c]
push eax
call fcn.004b10c0
add esp, 0x18
cmp byte [esp + 0x1f], 2
jne 0x4b24d7
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x7c]
mov ecx, edi
mov edx, dword [esp + 0x70]
test eax, eax
mov edi, dword [esp + 0xb4]
cmovne ecx, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x78]
movsx esi, ax
mov eax, dword [esp + 0xb0]
mov byte [ecx + 0x14], 1
xor ecx, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x90], esi
mov dword [esp + 0x38], eax
jmp 0x4b291d
mov esi, dword [esp + 0x18]
mov eax, 4
cmp byte [esi + 0x12], 0
jne 0x4b2560
cmp dword [esp + 0x5c], 0
jne 0x4b2560
cmp dword [esp + 0x7c], 0
jne 0x4b2560
cmp byte [esp + 0x6c], 0
jne 0x4b2560
cmp dword [esp + 0x128], 0
jne 0x4b2560
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x4b255b
test dword [ecx + 4], 0x400000
jne 0x4b2560
mov eax, 0xc
push dword [esp + 0xbc]
mov edx, dword [esp + 0x88]
mov ecx, esi
push eax
push 0
push 0
push 0
push dword [esp + 0x88]
call fcn.004c8a70
mov ecx, eax
add esp, 0x18
mov dword [esp + 0xd0], ecx
test ecx, ecx
je 0x4b3b5a
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x38], eax
movzx eax, byte [ecx + 0x2e]
mov ecx, dword [ecx + 0x30]
and ecx, 1
mov dword [esp + 0x58], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0xcc], ecx
cmp eax, 1
je 0x4b2632
mov eax, dword [esi + 0x7c]
mov ecx, esi
test eax, eax
cmovne ecx, eax
cmp dword [esp + 0x44], 2
mov eax, dword [esp + 0x14]
mov byte [ecx + 0x14], 1
jne 0x4b2636
test edx, edx
js 0x4b2636
cmp edx, eax
je 0x4b2636
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, dword [esp + 0xc8]
mov edi, edx
mov esi, dword [esp + 0xa4]
cmp byte [eax + ecx], 0
mov eax, dword [esp + 0x14]
je 0x4b2641
mov dword [esp + 0x44], 0
jmp 0x4b2641
mov edx, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x30], 0
mov dword [esp + 0xa4], esi
mov dword [esp + 0x14], edx
cmp dword [esp + 0x34], esi
je 0x4b22d8
jmp 0x4b24db
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 0x80
jne 0x4b2781
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b2679
mov ecx, dword [esp + 0x10]
mov edx, 0x87
push 0
push dword [esp + 0x2c]
push eax
call fcn.0044f120
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4b26b0
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [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 + 0x58]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x4b273f
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0x68]
mov dword [edx + ecx*4], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b2704
push dword [esp + 0x28]
mov edx, 0x80
mov ecx, esi
push dword [esp + 0x8c]
push dword [esp + 0x38]
call fcn.0044f120
add esp, 0xc
jmp 0x4b2919
mov edx, dword [esp + 0x30]
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 + 0x88]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x80
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2919
test esi, esi
je 0x4b291d
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
jne 0x4b2919
mov eax, dword [esp + 0x10]
lea edx, [esi + esi*4]
mov eax, dword [eax + 0x68]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.0044fcf0
add esp, 4
mov word [esi], 0xb8
mov dword [esi + 0x10], 0
jmp 0x4b2919
mov eax, dword [esp + 0x78]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4b27be
nop
mov eax, dword [esp + 0x70]
mov edx, ecx
mov ecx, dword [esp + 0x10]
add eax, esi
push eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x1c]
call fcn.0046d1d0
mov ecx, dword [esp + 0x2c]
inc esi
add esp, 0xc
cmp esi, edi
jl 0x4b2790
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4b2823
mov edx, dword [esp + 0xa4]
test edx, edx
je 0x4b2806
mov esi, dword [esp + 0x10]
mov ecx, dword [esi]
cmp byte [ecx + 0x57], 0
jne 0x4b2802
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.0044fcf0
add esp, 4
mov word [esi], 0xb8
mov dword [esi + 0x10], 0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x58]
cwde
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
jmp 0x4b291d
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 0x10]
test esi, esi
jne 0x4b283e
mov ecx, dword [esp + 0x94]
mov edx, eax
call fcn.0048e820
mov esi, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
movsx edi, ax
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x68], edx
cmp dword [ecx + 0x70], edx
jg 0x4b2870
push dword [esp + 0x4c]
mov edx, 0x61
push edi
mov edi, dword [esp + 0x78]
push edi
call fcn.0044f120
add esp, 0xc
mov edx, eax
jmp 0x4b28ab
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x70]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x68]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x78]
cwde
push eax
push esi
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.0044fec0
mov ecx, dword [esi + 0x6c]
add esp, 8
mov eax, dword [esp + 0x78]
movsx edx, ax
cmp dword [esi + 0x70], ecx
jg 0x4b28ea
push edx
push edi
push dword [esp + 0x54]
mov edx, 0x8a
mov ecx, esi
push dword [esp + 0x3c]
call fcn.0044f160
add esp, 0x10
jmp 0x4b2915
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0xfd8a
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], edx
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x9c], 0
jne 0x4b2b2d
cmp dword [esp + 0x34], 0
jne 0x4b2943
cmp ecx, 2
je 0x4b2943
mov ecx, dword [esp + 0xd0]
call fcn.004c9a80
cmp byte [esp + 0x1f], 2
je 0x4b2a66
mov ecx, dword [esp + 0x44]
xor esi, esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x68], esi
test ecx, ecx
je 0x4b2a02
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x64]
test eax, eax
js 0x4b297e
sub eax, dword [esp + 0xc8]
mov byte [eax + edx], 0
test edi, edi
js 0x4b298f
mov eax, edi
sub eax, dword [esp + 0xc8]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x4b2a02
mov ecx, dword [esp + 0xa0]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x4b2a02
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x4b29cb
push 0
push 0
push 0
mov edx, 0xf
call fcn.0044f120
add esp, 0xc
mov esi, eax
jmp 0x4b2a02
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0xf
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]
lea eax, [esp + 0x68]
mov ecx, dword [esp + 0x18]
push eax
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x6c]
push dword [esp + 0xd4]
push 0
push 0x71
call fcn.00493520
add esp, 0x18
test esi, esi
je 0x4b2a66
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x4b2a47
mov edx, ecx
mov dword [edx + 0x6c], eax
jmp 0x4b2a6a
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
je 0x4b2a56
mov eax, 0x4fec48
jmp 0x4b2a63
mov eax, dword [esp + 0x10]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
test esi, esi
je 0x4b2bda
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x38], eax
je 0x4b2ae5
cmp edi, eax
je 0x4b2ae5
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b2aaf
push dword [esp + 0x90]
mov ecx, dword [esp + 0x14]
mov edx, 0x1c
push dword [esp + 0x50]
push dword [esp + 0x34]
push eax
call fcn.0044f160
add esp, 0x10
jmp 0x4b2ae5
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x90]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 0x10], edx
cmp esi, 1
je 0x4b2af9
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 0x38]
dec edi
mov dword [esp + 0x48], edi
mov dword [ecx + 0x38], edi
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x3c], 0
mov edx, dword [esp + 0x28]
cmovne edx, dword [esp + 0x4c]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b2ba6
push 0
push dword [esp + 0x30]
mov ecx, esi
push edx
mov edx, 0x32
call fcn.0044f120
add esp, 0xc
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
cmp byte [esp + 0x26], 0
je 0x4b3077
test eax, eax
jne 0x4b2fee
mov esi, dword [esp + 0x18]
cmp dword [esi + 8], eax
je 0x4b2f91
mov edx, dword [esp + 0x54]
mov ecx, esi
push edx
mov edx, dword [esp + 0xbc]
call fcn.0046dbd0
mov edi, eax
add esp, 4
cmp edi, dword [esp + 0x54]
je 0x4b2f91
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x4b2f70
test dword [eax + 4], 0x400000
jne 0x4b2b9c
cmp byte [eax], 0xb0
jne 0x4b2f70
mov edx, 0x50
jmp 0x4b2f75
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 + 0x2c]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2b2d
cmp dword [esp + 0x3c], 0
jne 0x4b2d1e
cmp dword [esp + 0x34], 0
jne 0x4b2d1e
mov ecx, dword [edx + 0x6c]
mov esi, dword [esp + 0x30]
cmp dword [edx + 0x70], ecx
jg 0x4b2c16
mov ecx, dword [esp + 0x10]
mov edx, 0x24
push 0
push dword [esp + 0x30]
push esi
call fcn.0044f120
add esp, 0xc
jmp 0x4b2c45
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 4], esi
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 + 0x18]
mov edx, dword [esp + 0x10]
mov edi, dword [ecx + 0x38]
dec edi
mov dword [ecx + 0x38], edi
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x48], edi
mov dword [esp + 0xc0], ecx
cmp dword [edx + 0x70], ecx
jg 0x4b2c8c
mov ecx, dword [esp + 0x10]
mov edx, 0x87
push 0
push dword [esp + 0x2c]
push esi
call fcn.0044f120
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0xc0], eax
jmp 0x4b2cbf
mov edi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b2ce6
push dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, 0x1f
push edi
push dword [esp + 0x1c]
call fcn.0044f120
add esp, 0xc
jmp 0x4b2b31
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2b35
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
mov edi, dword [ecx + 0x38]
dec edi
mov dword [ecx + 0x38], edi
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x48], edi
cmp dword [edx + 0x70], ecx
jg 0x4b2d53
mov ecx, dword [esp + 0x10]
mov edx, 0x24
push 0
push dword [esp + 0x30]
push esi
call fcn.0044f120
add esp, 0xc
jmp 0x4b2d82
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 4], esi
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 + 0x10]
mov eax, dword [esp + 0x34]
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0xc0], ecx
test eax, eax
je 0x4b2eb9
cmp byte [esp + 0x1f], 2
je 0x4b2b39
cmp dword [esp + 0x3c], 0
je 0x4b2e8f
mov eax, dword [esp + 0x78]
xor esi, esi
movsx edi, ax
mov dword [esp + 0x38], edi
test edi, edi
jle 0x4b2e2e
jmp 0x4b2dc9
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
add edx, esi
cmp dword [eax + 0x70], ecx
jg 0x4b2df2
push edx
push esi
push dword [esp + 0x38]
mov edx, 0x5e
mov ecx, eax
call fcn.0044f120
add esp, 0xc
jmp 0x4b2e25
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
inc esi
cmp esi, edi
jl 0x4b2dc5
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
movsx edx, ax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b2e5f
push edx
push dword [esp + 0x74]
mov edx, 0x1c
mov ecx, esi
push edi
push dword [esp + 0x20]
call fcn.0044f160
add esp, 0x10
jmp 0x4b2b2d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x70]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4b2b2d
cmp dword [edx + 0x70], ecx
jg 0x4b2c8c
mov ecx, dword [esp + 0x10]
mov edx, 0x87
push 0
push dword [esp + 0x2c]
push esi
call fcn.0044f120
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4b2cbf
cmp dword [edx + 0x70], ecx
jg 0x4b2edc
mov ecx, dword [esp + 0x10]
mov edx, 0x86
push 0
push dword [esp + 0x50]
push esi
call fcn.0044f120
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4b2f0f
mov edi, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b2f38
mov ecx, dword [esp + 0x10]
mov edx, 0x1c
push 0
push dword [esp + 0x50]
push edi
push dword [esp + 0x20]
call fcn.0044f160
add esp, 0x10
jmp 0x4b2b31
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2b35
mov edx, 0x51
mov esi, dword [esi + 8]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b2fc0
push 0
push dword [esp + 0x58]
mov ecx, esi
push edi
call fcn.0044f120
add esp, 0xc
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b3048
mov ecx, dword [esp + 0x10]
mov edx, 0xd
push 0
push 0
push esi
call fcn.0044f120
add esp, 0xc
jmp 0x4b3077
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x54]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 4], edi
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 8], esi
mov word [eax + 2], cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
jmp 0x4b2f95
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b3011
push dword [esp + 0x54]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x14]
push edx
push esi
mov edx, 0x5e
jmp 0x4b2f89
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x80]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b2f95
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0xd
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
cmp byte [esp + 0x43], 0
jne 0x4b3150
cmp dword [esp + 0x7c], 0
jne 0x4b315b
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4b3240
xor esi, esi
push dword [ebp + 0x10]
mov edx, dword [esp + 0x60]
push dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push 3
push 0
push dword [esp + 0x70]
call fcn.004b0fe0
mov ecx, dword [esp + 0x34]
or esi, eax
mov dword [esp + 0x94], esi
xor eax, eax
add esp, 0x14
xor esi, esi
cmp ax, word [ecx + 0x22]
jge 0x4b31d4
xor edi, edi
nop word [eax + eax]
mov eax, dword [ecx + 4]
mov edx, esi
movzx eax, word [eax + edi + 0xe]
mov dword [esp + 0x38], eax
call fcn.0047b7d0
movsx edx, ax
add edx, dword [esp + 0x8c]
cmp dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x68], edx
je 0x4b31aa
cmp esi, 0x20
jge 0x4b312a
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [esp + 0x80], eax
jne 0x4b31aa
test byte [esp + 0x38], 1
jne 0x4b31aa
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b316f
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, eax
call fcn.0044f120
jmp 0x4b31bd
cmp dword [esp + 0x7c], 0
je 0x4b3099
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
call fcn.0048d370
mov esi, eax
jmp 0x4b309b
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edx + 0x6c], eax
mov eax, edx
mov edx, dword [esp + 0x68]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x4b
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 0x4b31c0
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x24]
push esi
push dword [esp + 0x1c]
call fcn.0046d1d0
add esp, 0xc
mov ecx, dword [esp + 0x20]
inc esi
add edi, 0x10
movsx eax, word [ecx + 0x22]
cmp esi, eax
jl 0x4b30e0
cmp byte [esp + 0x26], 0
jne 0x4b323c
cmp dword [esp + 0x3c], 0
jne 0x4b323c
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b3209
push 0
push dword [esp + 0x58]
mov edx, 0x50
mov ecx, esi
push dword [esp + 0x30]
call fcn.0044f120
add esp, 0xc
jmp 0x4b323c
mov edx, dword [esp + 0x28]
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 + 0x54]
mov dword [eax + ecx*4], 0x50
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 + 0x5c]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x24]
push 1
push 1
push dword [esp + 0x70]
call fcn.004b0fe0
mov edx, dword [esp + 0xc0]
xor edi, edi
mov dword [esp + 0x4c], eax
add esp, 0x14
mov eax, dword [esp + 0x20]
mov esi, edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x8c], edi
movzx ecx, word [eax + 0x22]
cmp di, cx
jge 0x4b3397
xor edx, edx
mov dword [esp + 0x80], edx
nop
movsx eax, word [eax + 0x20]
cmp edi, eax
jne 0x4b32c3
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b3541
mov ecx, dword [esp + 0x10]
mov edx, 0x4b
push 0
push esi
push 0
call fcn.0044f120
add esp, 0xc
jmp 0x4b3364
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0xe]
test al, 0x60
je 0x4b32e1
test al, 0x20
je 0x4b3364
dec esi
jmp 0x4b3364
mov eax, dword [esp + 0x50]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x4b34f9
cmp dword [esp + 0x34], 0
je 0x4b3446
cmp byte [esp + 0x1f], 2
je 0x4b3306
mov ecx, dword [esp + 0x78]
movzx ecx, cx
movsx edx, cx
add edx, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b3331
push esi
push edx
push dword [esp + 0x38]
mov edx, 0x5e
mov ecx, eax
call fcn.0044f120
add esp, 0xc
jmp 0x4b3364
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x5e
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 + 0x64]
mov eax, dword [esp + 0x20]
inc edi
add dword [esp + 0x80], 0x10
inc esi
mov edx, dword [esp + 0x80]
mov dword [esp + 0x64], edi
movzx eax, word [eax + 0x22]
mov ecx, eax
cwde
cmp edi, eax
mov eax, dword [esp + 0x20]
jl 0x4b3290
mov edx, dword [esp + 0xac]
test byte [eax + 0x1c], 0x60
je 0x4b33ae
mov ecx, dword [esp + 0x18]
push eax
call fcn.0048eba0
mov eax, dword [esp + 0x24]
add esp, 4
test byte [esp + 0xd4], 1
je 0x4b36af
push dword [esp + 0xac]
mov edi, dword [esp + 0x14]
mov edx, eax
mov ecx, edi
call fcn.0048e8d0
mov esi, dword [esp + 0x4c]
add esp, 4
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
push esi
push dword [ebp + 0x10]
push dword [esp + 0x30]
push dword [esp + 0x2c]
push 1
push dword [esp + 0x74]
push 0x81
call fcn.004b0ef0
add esp, 0x1c
cmp byte [esp + 0x1f], 2
je 0x4b398e
cmp dword [esp + 0x3c], 0
mov ecx, dword [edi + 0x6c]
mov eax, dword [edi + 0x70]
je 0x4b35cb
cmp eax, ecx
jg 0x4b359b
push dword [esp + 0x90]
mov edx, 0x1c
mov ecx, edi
push dword [esp + 0x50]
push esi
push dword [esp + 0x20]
call fcn.0044f160
add esp, 0x10
jmp 0x4b3618
mov ecx, dword [esp + 0x60]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*4 + 8]
mov eax, dword [esp + 0x18]
cmp dword [eax + 8], 0
je 0x4b3360
push esi
mov edx, edi
mov ecx, eax
call fcn.0046dbd0
add esp, 4
mov dword [esp + 0x8c], eax
cmp eax, esi
je 0x4b3360
test edi, edi
je 0x4b3494
test dword [edi + 4], 0x400000
jne 0x4b348d
cmp byte [edi], 0xb0
jne 0x4b3494
mov edx, 0x50
jmp 0x4b3499
mov edx, 0x51
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b34bb
push 0
push esi
push eax
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4b3360
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 + 0x8c]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
jmp 0x4b3360
test dword [esp + 0xd4], 1
je 0x4b3575
cmp edi, 0x1f
jg 0x4b3575
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x38], eax
jne 0x4b3575
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b3541
mov ecx, dword [esp + 0x10]
mov edx, 0x4b
push 0
push esi
push 0
call fcn.0044f120
add esp, 0xc
jmp 0x4b3364
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x4b
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 0x4b3364
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push esi
push edi
push dword [esp + 0x1c]
call fcn.0046d1d0
add esp, 0xc
mov dword [esp + 0xcc], 0
jmp 0x4b3364
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 + 0x4c]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x90]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4b3614
cmp eax, ecx
jg 0x4b35e9
push dword [esp + 0x28]
mov edx, 0x1f
mov ecx, edi
push esi
push dword [esp + 0x1c]
call fcn.0044f120
add esp, 0xc
jmp 0x4b3618
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 + 0x28]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 8], esi
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0xac]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x22]
jge 0x4b3698
mov dword [esp + 0x8c], ecx
mov eax, dword [edx + 4]
movzx eax, word [eax + ecx + 0xe]
test al, 0x60
je 0x4b364e
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x4b367d
mov eax, dword [esp + 0x50]
cmp dword [eax + esi*4], 0
jge 0x4b367d
movsx eax, word [edx + 0x20]
cmp esi, eax
je 0x4b367d
mov ecx, dword [esp + 0x10]
push edi
push esi
push dword [esp + 0x1c]
call fcn.0046d1d0
mov ecx, dword [esp + 0x98]
add esp, 0xc
mov edx, dword [esp + 0x20]
movsx eax, word [edx + 0x22]
inc esi
add ecx, 0x10
inc edi
mov dword [esp + 0x8c], ecx
cmp esi, eax
jl 0x4b3636
mov eax, dword [esp + 0xac]
test byte [edx + 0x1c], 0x60
je 0x4b36be
mov ecx, dword [esp + 0x18]
push edx
mov edx, eax
call fcn.0048eba0
add esp, 4
jmp 0x4b36ba
cmp byte [esp + 0x1f], 2
je 0x4b398a
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x128]
push 0
push dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
push eax
push esi
push dword [ebp + 0x10]
push dword [esp + 0x80]
push dword [esp + 0x40]
push dword [esp + 0x70]
push dword [esp + 0xdc]
push dword [esp + 0x38]
push dword [esp + 0xc0]
call fcn.00491020
add esp, 0x2c
cmp dword [esp + 0x128], 0
jne 0x4b3717
mov al, byte [esp + 0x6c]
test al, al
je 0x4b37e3
cmp dword [esp + 0x3c], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
mov eax, dword [edi + 0x70]
je 0x4b378c
cmp eax, ecx
jg 0x4b3754
push dword [esp + 0x90]
mov edx, 0x1c
mov ecx, edi
push dword [esp + 0x50]
push esi
push dword [esp + 0x20]
call fcn.0044f160
mov al, byte [esp + 0x7c]
add esp, 0x10
jmp 0x4b37e7
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 + 0x4c]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x90]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], edx
mov al, byte [esp + 0x6c]
jmp 0x4b37e7
cmp eax, ecx
jg 0x4b37ae
push dword [esp + 0x28]
mov edx, 0x1f
mov ecx, edi
push esi
push dword [esp + 0x1c]
call fcn.0044f120
mov al, byte [esp + 0x78]
add esp, 0xc
jmp 0x4b37e7
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 + 0x28]
mov dword [eax + ecx*4], 0x1f
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 + 0x6c]
jmp 0x4b37eb
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x7c], 0
je 0x4b380d
mov ecx, dword [esp + 0x18]
movzx eax, al
push eax
push dword [esp + 0x54]
push 0
push edx
mov edx, dword [esp + 0x30]
call fcn.0048cd40
add esp, 0x10
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push dword [esp + 0x9c]
push dword [esp + 0xc4]
push dword [esp + 0x20]
call fcn.00486450
add esp, 0x10
cmp dword [esp + 0xcc], 0
je 0x4b388f
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b385c
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x8f
mov ecx, edi
call fcn.0044f120
add esp, 0xc
jmp 0x4b388f
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], 0x8f
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 + 0x7c]
cmp edx, 1
jg 0x4b38a0
mov al, byte [esp + 0x6c]
test al, al
je 0x4b38ff
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b38c8
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x82
mov ecx, edi
call fcn.0044f120
mov edx, dword [esp + 0x88]
add esp, 0xc
jmp 0x4b38fb
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 4], edi
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 + 0x6c]
test edx, edx
je 0x4b3921
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
movzx eax, al
push eax
push dword [esp + 0x54]
push dword [esp + 0x5c]
push 0
call fcn.0048cd40
add esp, 0x10
mov edi, dword [esp + 0x44]
xor eax, eax
mov edx, dword [esp + 0x20]
cmp edi, 2
mov ecx, dword [esp + 0x18]
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0xa4]
push dword [esp + 0x64]
push dword [esp + 0xd0]
push dword [esp + 0x2c]
call fcn.004932b0
add esp, 0x1c
cmp dword [esp + 0x7c], 0
je 0x4b3992
movzx eax, byte [esp + 0x6c]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x54]
push dword [esp + 0x30]
push dword [esp + 0x6c]
call fcn.0048e600
add esp, 0x10
jmp 0x4b3992
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x4b39f7
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b39c1
mov ecx, dword [esp + 0x10]
mov edx, 0x56
push 0
push 1
push eax
call fcn.0044f120
add esp, 0xc
jmp 0x4b39f7
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0xc4]
mov dword [eax + ecx*4], 0x56
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 + 0x5c]
test eax, eax
je 0x4b3a24
mov ecx, dword [esp + 0x18]
mov edx, eax
push esi
push dword [ebp + 0x10]
push dword [esp + 0x30]
push dword [esp + 0x2c]
push 2
push dword [esp + 0x74]
push 0x81
call fcn.004b0ef0
add esp, 0x1c
cmp edi, 1
je 0x4b3a5f
mov edx, dword [esp + 0x10]
not esi
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 0x3c]
cmp edi, 2
jne 0x4b3a88
add eax, dword [ecx + 0x38]
jns 0x4b3a4a
push esi
call fcn.0044f970
add esp, 4
jmp 0x4b3a53
mov ecx, dword [ecx + 0x40]
mov eax, dword [edx + 0x6c]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0xd0]
call fcn.004c9a80
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x2c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4b3b0b
push edx
mov edx, esi
call fcn.0044f970
add esp, 4
jmp 0x4b3b14
add eax, dword [ecx + 0x38]
jns 0x4b3a9c
push esi
call fcn.0044f970
mov edx, dword [esp + 0x14]
add esp, 4
jmp 0x4b3aa5
mov ecx, dword [ecx + 0x40]
mov eax, dword [edx + 0x6c]
mov dword [ecx + esi*4], eax
mov ecx, dword [edx + 0x6c]
mov esi, dword [esp + 0x10]
cmp dword [edx + 0x70], ecx
jg 0x4b3ad0
mov edx, dword [esp + 0xc0]
mov ecx, esi
push 0
push edx
push dword [esp + 0x38]
mov edx, 0x27
call fcn.0044f120
add esp, 0xc
jmp 0x4b3a63
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc0]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b3a63
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x12], 0
jne 0x4b3b3e
cmp dword [eax + 0x80], 0
jne 0x4b3b3e
cmp dword [esp + 0x9c], 0
jne 0x4b3b3e
cmp dword [eax + 0x78], 0
je 0x4b3b3e
mov ecx, eax
call fcn.0048ef60
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x4b3b5a
push str.rows_updated
mov edx, eax
mov ecx, esi
call fcn.00484940
add esp, 4
mov eax, dword [esp + 0xd8]
test eax, eax
je 0x4b3b72
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0x100], ecx
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x94]
call fcn.004279d0
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x94]
call fcn.004829b0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4b3baf
mov ecx, dword [esp + 0x94]
mov edx, eax
call fcn.00469a60
test esi, esi
je 0x4b3bc1
mov ecx, dword [esp + 0x94]
mov edx, esi
call fcn.00468660
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
xor ecx, esp
call fcn.004e3214
mov esp, ebp
pop ebp
ret