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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
xor eax, eax
mov dword [ebp - 0xa4], 0
push ebx
push esi
mov esi, dword [ebp + 8]
xor ecx, ecx
push edi
xor edi, edi
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x58], edi
mov ebx, dword [esi]
mov dword [ebp - 0x4c], 0xffffffff
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x2c], ebx
cmp dword [esi + 0x24], eax
jne 0x4b51cf
cmp byte [ebx + 0x53], al
jne 0x4b51cf
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.004b32b0
mov ebx, eax
add esp, 8
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x4b51ca
push dword [ebx + 0x48]
push dword [esi]
call fcn.004afd40
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0xb4]
push eax
push dword [ebp + 0x10]
push 0x80
push ebx
push esi
call fcn.004b4600
mov dword [ebp - 0x50], eax
add esp, 0x1c
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax], 1
jle 0x4b4d24
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
jmp 0x4b4d27
mov dword [ebp - 0x1c], edi
push ebx
push esi
call fcn.004c3080
add esp, 8
test eax, eax
jne 0x4b51ca
push dword [ebp - 0xb4]
push ebx
push esi
call fcn.004a5a30
add esp, 0xc
test eax, eax
jne 0x4b51ca
mov eax, dword [esi + 0x28]
mov edi, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x60], edi
lea edx, [eax + 1]
mov dword [esi + 0x28], edx
test byte [ebx + 0x24], 0x80
mov dword [ebp - 0xa0], edx
jne 0x4b4d77
mov dword [ebp - 0x28], 0
jmp 0x4b4d83
push ebx
call fcn.004ad810
add esp, 4
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 8]
xor ecx, ecx
mov dword [ebp - 0x94], ecx
test eax, eax
je 0x4b4db1
mov edi, dword [ebp - 0x28]
cmp edi, eax
jne 0x4b4d9c
mov dword [ebp - 8], edx
inc edx
inc ecx
mov dword [esi + 0x28], edx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4b4d95
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp + 0x24]
test edx, edx
je 0x4b4dcc
mov eax, dword [edx + 0x28]
mov edx, dword [edx + 0x2c]
mov dword [ebp - 8], eax
mov dword [ebp - 0xa0], edx
mov dword [esi + 0x28], edi
jmp 0x4b4dcf
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
push 0
mov dword [edx + 0x34], eax
movsx eax, word [ebx + 0x2a]
add eax, ecx
lea eax, [eax*4 + 6]
add eax, ecx
push eax
push dword [ebp - 0x2c]
call fcn.004970f0
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x18], edi
test edi, edi
je 0x4b51ca
movsx eax, word [ebx + 0x2a]
lea ecx, [edi + eax*4]
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x70], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [ebp - 0x78], ecx
call fcn.00516d20
mov eax, dword [ebp - 0x94]
add esp, 0xc
mov ecx, dword [ebp - 0x78]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [ebx + 0x2a]
jge 0x4b4e50
lea ecx, [ecx]
mov dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebx + 0x2a]
cmp ecx, eax
jl 0x4b4e40
xor eax, eax
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xf0], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xe0], 0x200
mov dword [ebp - 4], eax
test eax, eax
jne 0x4b4ebb
cmp dword [esi + 0x74], eax
jne 0x4b4ea7
mov eax, dword [esi]
test byte [eax + 0x4c], 8
jne 0x4b4ea7
mov byte [esi + 0x17], 1
push esi
call fcn.004b8670
add esp, 4
mov dword [ebp - 4], eax
test eax, eax
je 0x4b51ca
mov ecx, dword [ebp + 0x10]
xor al, al
mov byte [ebp - 0x21], 0
mov byte [ebp - 0xd], al
mov dword [ebp - 0x30], 0
cmp dword [ecx], 0
jle 0x4b50b8
lea esi, [ecx + 8]
mov dword [ebp - 0x38], esi
lea ecx, [ecx]
cmp dword [ebp - 0x1c], 0
jne 0x4b4eff
push dword [esi]
lea eax, [ebp - 0xf8]
push eax
call fcn.004ae720
add esp, 8
test eax, eax
jne 0x4b51c7
movsx eax, word [ebx + 0x2a]
xor edi, edi
test eax, eax
jle 0x4b4f7d
mov eax, dword [ebx + 4]
mov ebx, eax
mov dword [ebp - 0x80], eax
mov esi, dword [esi + 4]
mov edx, dword [ebx]
sub esi, edx
jmp 0x4b4f20
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4b4f54
test ecx, ecx
jne 0x4b4f66
mov ebx, dword [ebp - 0xc]
movsx eax, word [ebx + 0x28]
cmp edi, eax
jne 0x4b4fb6
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0xd], 1
mov eax, dword [esi]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4c], eax
mov dword [ecx + edi*4], eax
jmp 0x4b4f7d
movzx eax, byte [eax + 0x548e98]
movzx ecx, byte [ecx + 0x548e98]
sub ecx, eax
jne 0x4b4f69
inc edx
jmp 0x4b4f20
mov ecx, dword [ebp - 0xc]
inc edi
mov esi, dword [ebp - 0x38]
add ebx, 0x14
movsx eax, word [ecx + 0x2a]
cmp edi, eax
jl 0x4b4f11
mov ebx, ecx
movsx eax, word [ebx + 0x2a]
cmp edi, eax
jl 0x4b5053
cmp dword [ebp - 0x28], 0
jne 0x4b520e
mov ebx, dword [esi + 4]
mov edi, str._ROWID_
mov edx, ebx
sub edi, ebx
nop
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x4b4ff7
test eax, eax
je 0x4b5034
inc edx
jmp 0x4b4fa0
cmp dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x80]
je 0x4b4fdb
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 1
je 0x4b4fdb
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x38]
mov byte [ebp - 0x21], 1
mov dword [ecx + edi*4], eax
jmp 0x4b4f7d
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 0x60
jne 0x4b51ae
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x38]
mov dword [ecx + edi*4], eax
jmp 0x4b4f7d
movzx ecx, byte [eax + 0x548e98]
movzx eax, byte [esi + 0x548e98]
sub ecx, eax
jne 0x4b500c
inc edx
jmp 0x4b4fa0
push str.ROWID
push ebx
call fcn.004b3ad0
add esp, 8
test eax, eax
je 0x4b5034
push 0x550800
push ebx
call fcn.004b3ad0
add esp, 8
test eax, eax
jne 0x4b520e
mov esi, dword [ebp - 0x38]
or edi, 0xffffffff
mov ebx, dword [ebp - 0xc]
mov edx, str.ROWID
mov byte [ebp - 0xd], 1
mov eax, dword [esi]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4c], eax
jmp 0x4b5067
test edi, edi
jns 0x4b505e
mov edx, str.ROWID
jmp 0x4b5067
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x48]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
push edx
push dword [ebx]
push 0x17
push dword [ebp + 8]
call fcn.0048ef10
add esp, 0x14
cmp eax, 1
je 0x4b51c7
cmp eax, 2
jne 0x4b509d
mov eax, dword [ebp - 0x18]
mov dword [eax + edi*4], 0xffffffff
mov eax, dword [ebp - 0x30]
add esi, 0x14
mov ecx, dword [ebp + 0x10]
inc eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], esi
cmp eax, dword [ecx]
jl 0x4b4ee0
mov al, byte [ebp - 0xd]
mov edx, dword [ebp - 0xc]
mov bl, byte [ebp - 0x21]
add bl, al
mov byte [ebp - 0x6c], bl
test byte [edx + 0x24], 0x60
je 0x4b5199
lea ecx, [ecx]
xor eax, eax
xor ebx, ebx
xor esi, esi
cmp ax, word [edx + 0x2a]
jge 0x4b5196
xor edi, edi
mov eax, dword [ebp - 0x18]
cmp dword [eax + esi*4], 0
jge 0x4b517e
mov eax, dword [edx + 4]
test byte [eax + edi + 0x10], 0x60
je 0x4b517e
mov ecx, dword [eax + edi + 4]
xor eax, eax
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov word [ebp - 0xbc], ax
mov dword [ebp - 0xcc], 0x46a330
test ecx, ecx
je 0x4b515c
push ecx
lea eax, [ebp - 0xd0]
push eax
call fcn.004d59a0
mov ax, word [ebp - 0xbc]
add esp, 8
mov edx, dword [ebp - 0xc]
cmp byte [ebp - 0xd], 0
jne 0x4b516a
mov ecx, 0xfffd
and ax, cx
test ax, ax
je 0x4b517e
mov eax, dword [ebp - 0x18]
mov ebx, 1
mov dword [eax + esi*4], 0x1869f
movsx eax, word [edx + 0x2a]
inc esi
add edi, 0x14
cmp esi, eax
jl 0x4b50e2
test ebx, ebx
jne 0x4b50d0
mov bl, byte [ebp - 0x6c]
cmp dword [edx + 0x38], 0
je 0x4b523a
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4b523e
mov eax, dword [ebx + 4]
lea ecx, [edi + edi*4]
push dword [eax + ecx*4]
push str.cannot_UPDATE_generated_column___s_
push dword [ebp + 8]
call fcn.00498f80
add esp, 0xc
mov edi, dword [ebp - 0x18]
xor ecx, ecx
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0xd4]
test eax, eax
je 0x4b51e2
mov dword [eax + 0xf0], ecx
test edi, edi
je 0x4b6f0a
test ebx, ebx
je 0x4b6eb5
cmp dword [ebx + 0x200], 0
je 0x4b6e7a
push edi
push ebx
call fcn.0047e300
add esp, 8
jmp 0x4b6f0a
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
lea eax, [eax + eax*4]
push dword [esi + eax*4 + 0xc]
push str.no_such_column:__s
push ebx
call fcn.00498f80
mov edi, dword [ebp - 0x18]
add esp, 0xc
mov byte [ebx + 0x11], 1
xor ecx, ecx
mov ebx, dword [ebp - 0x2c]
jmp 0x4b51d2
xor eax, eax
xor ecx, ecx
mov esi, dword [ebp + 0xc]
mov dword [esi + 0x40], eax
movzx eax, bl
push eax
push dword [ebp - 0x18]
mov dword [esi + 0x44], ecx
push edx
push dword [ebp + 8]
mov dword [ebp - 0x80], eax
call fcn.004a0020
add esp, 0x10
mov ebx, eax
cmp dword [ebp + 0x18], 5
mov dword [ebp - 0x38], ebx
jne 0x4b5272
mov dword [ebp - 0x8c], 1
mov eax, dword [ebp - 0xc]
xor edi, edi
mov dword [ebp - 0x68], edi
mov esi, dword [eax + 8]
test esi, esi
je 0x4b53fa
cmp byte [ebp - 0x6c], 0
jne 0x4b5473
cmp ebx, 1
jg 0x4b5473
cmp esi, dword [ebp - 0x28]
je 0x4b5473
mov eax, dword [esi + 0x24]
test eax, eax
je 0x4b5317
xor ecx, ecx
mov dword [ebp - 0xcc], 0x46a330
push eax
mov dword [ebp - 0xbc], ecx
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], ecx
mov word [ebp - 0xbc], cx
mov ecx, dword [ebp - 0x18]
push eax
mov dword [ebp - 0xb8], ecx
call fcn.004d59a0
mov cx, word [ebp - 0xbc]
add esp, 8
cmp byte [ebp - 0xd], 0
jne 0x4b5307
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4b5473
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [ebp - 0x5c], ecx
cmp ax, word [esi + 0x32]
jae 0x4b53d7
xor ebx, ebx
lea esp, [esp]
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x4b534a
mov ecx, dword [ebp - 0x18]
cwde
mov eax, dword [ecx + eax*4]
not eax
shr eax, 0x1f
jmp 0x4b53bc
mov eax, dword [esi + 0x28]
xor ecx, ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0x114], ecx
mov eax, dword [eax + ebx + 8]
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x104], ecx
mov word [ebp - 0x100], cx
mov dword [ebp - 0x110], 0x46a330
mov dword [ebp - 0xfc], edx
test eax, eax
je 0x4b53a6
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.004d59a0
mov cx, word [ebp - 0x100]
add esp, 8
cmp byte [ebp - 0xd], 0
jne 0x4b53b4
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4b5446
movzx eax, word [esi + 0x32]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x4b5330
mov ecx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x78]
mov byte [edi + eax + 1], 0
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x38]
mov dword [eax + edi*4], ecx
inc edi
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x68], edi
test esi, esi
jne 0x4b5285
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x70]
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [edx + edi*4], eax
cmp dword [ebp - 0x8c], 0
je 0x4b542a
mov eax, dword [ebp - 0x94]
inc eax
push eax
push 1
push dword [ebp - 0x78]
call fcn.00516d20
mov ecx, dword [ebp + 8]
add esp, 0xc
cmp byte [ecx + 0x12], 0
jne 0x4b543a
mov eax, dword [ebp - 4]
or dword [eax + 0x98], 0x10
cmp dword [ebp - 0x50], 0
jne 0x4b5492
test ebx, ebx
jne 0x4b5492
jmp 0x4b5497
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x68]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
cmp dword [ebp + 0x18], 0xb
mov dword [edx + 0x2c], eax
jne 0x4b5485
cmp byte [esi + 0x36], 5
jne 0x4b5485
mov dword [ebp - 0x8c], 1
jmp 0x4b5485
mov edx, dword [ebp + 8]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
mov dword [edx + 0x2c], eax
test ecx, ecx
jne 0x4b53e2
jmp 0x4b53da
mov ebx, 1
mov esi, dword [ecx + 0x74]
test esi, esi
jne 0x4b54a0
mov esi, ecx
mov ecx, dword [ebp - 0x48]
mov eax, 1
mov edx, dword [esi + 0x54]
shl eax, cl
test edx, eax
jne 0x4b54c8
bts edx, ecx
mov dword [esi + 0x54], edx
cmp ecx, 1
jne 0x4b54c8
push esi
call fcn.004a8070
mov ecx, dword [ebp - 0x48]
add esp, 4
mov eax, dword [esi + 0x50]
mov edx, dword [ebp - 0xc]
bts eax, ecx
or byte [esi + 0x14], bl
mov dword [esi + 0x50], eax
mov esi, dword [ebp + 8]
cmp dword [edx + 0x38], 0
jne 0x4b5546
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x50]
mov eax, dword [eax + edi*4]
inc dword [esi + 0x2c]
cmp byte [ebp - 0x21], 0
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x14], ecx
jne 0x4b5509
test ebx, ebx
jne 0x4b5509
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x4b551e
lea eax, [ecx + 1]
mov dword [ebp - 0x90], eax
movsx eax, word [edx + 0x2a]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x38]
cmp byte [ebp - 0x6c], 0
jne 0x4b552c
test ebx, ebx
jne 0x4b552c
test eax, eax
je 0x4b5535
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x2c]
inc eax
mov dword [ebp - 0x88], eax
movsx eax, word [edx + 0x2a]
add dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4b5569
mov eax, esi
mov dword [ebp - 0xd4], eax
mov eax, dword [esi + 0xf0]
mov dword [ebp - 0x74], eax
mov eax, dword [edx]
mov dword [esi + 0xf0], eax
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x1c], 0
mov edi, dword [ebp + 0x14]
jne 0x4b55ba
test eax, eax
je 0x4b5591
push dword [ebp - 8]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push edi
push edx
push esi
call fcn.004a7500
add esp, 0x18
xor ebx, ebx
mov dword [ebp - 0x48], ebx
jmp 0x4b559d
mov esi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0x48], esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0xf8]
push edi
push eax
call fcn.004ae720
add esp, 8
test eax, eax
jne 0x4b6e6f
mov edx, dword [ebp - 0xc]
jmp 0x4b55c3
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0x48], eax
cmp dword [edx + 0x38], 0
je 0x4b55ec
push dword [ebp + 0x18]
push edi
mov edi, dword [ebp - 0x18]
push edi
push dword [ebp - 0x58]
push dword [ebp + 0x10]
push edx
push dword [ebp + 0xc]
push esi
call fcn.004ce5f0
mov ecx, dword [ebp - 0x74]
add esp, 0x20
jmp 0x4b51cc
mov eax, dword [ebp - 0x2c]
dec dword [esi + 0x38]
mov edi, dword [esi + 0x38]
mov dword [ebp - 0x30], edi
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
mov dword [ebp - 0x54], edi
or eax, ecx
mov ecx, dword [ebp + 8]
je 0x4b569d
cmp dword [ecx + 0x78], 0
jne 0x4b569d
cmp byte [ecx + 0x12], 0
jne 0x4b569d
cmp byte [ecx + 0x91], 0
jne 0x4b569d
cmp dword [ebp + 0x24], 0
mov esi, dword [ebp - 4]
jne 0x4b56a0
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esi + 0x6c]
mov dword [ebp - 0xb0], eax
cmp dword [esi + 0x70], ecx
jg 0x4b5660
push 0
push eax
push 0
push 0x45
push esi
call fcn.00478bc0
mov edx, dword [ebp - 0xc]
add esp, 0x14
mov ecx, dword [ebp + 8]
jmp 0x4b56a0
mov edi, dword [ebp - 0xb0]
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 [ebp - 0x30]
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 ecx, dword [ebp + 8]
jmp 0x4b56a0
mov esi, dword [ebp - 4]
cmp dword [ebp - 0x1c], 0
jne 0x4b5771
test byte [edx + 0x24], 0x80
jne 0x4b5771
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b56d1
push dword [ebp - 0x14]
push dword [ebp - 0x7c]
push 0
push 0x48
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b5702
mov edx, dword [ebp - 0x7c]
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 [ebp - 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 [ebp + 8]
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x20], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x28], eax
mov ebx, dword [esi + 0x6c]
mov dword [ebp - 0x84], ebx
cmp dword [esi + 0x70], ebx
jg 0x4b573b
push dword [ebp - 0x7c]
push 0
push ecx
push 0x70
push esi
call fcn.00478bc0
add esp, 0x14
mov dword [ebp - 0x84], eax
jmp 0x4b5940
lea eax, [ebx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x68]
mov ebx, dword [ebp - 0x20]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0x70
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b5943
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4b577e
movzx eax, word [eax + 0x32]
jmp 0x4b5780
xor eax, eax
mov esi, dword [ecx + 0x2c]
movsx edi, ax
inc esi
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x34], esi
add eax, edi
mov dword [ebp - 0x5c], edi
add dword [ecx + 0x2c], eax
cmp dword [ebp + 0x24], 0
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x3c], eax
jne 0x4b5908
cmp dword [ebp - 0x64], 0
je 0x4b57b8
movsx eax, word [edx + 0x2a]
jmp 0x4b57ba
xor eax, eax
lea esi, [eax + edi]
mov eax, dword [ecx + 0x28]
add esi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
inc eax
cmp dword [ebp - 0x28], 0
mov dword [ecx + 0x28], eax
je 0x4b582a
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x34]
dec edx
add edx, edi
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b57f4
push edx
push dword [ebp - 0x34]
push 0
push 0x48
push eax
call fcn.00478bc0
add esp, 0x14
jmp 0x4b582a
mov edi, dword [ebp - 4]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [ebp - 0x34]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [ebp - 0x5c]
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 [ebp - 4]
mov ecx, dword [edx + 0x6c]
mov dword [ebp - 0x84], ecx
cmp dword [edx + 0x70], ecx
jg 0x4b5854
push 0
push esi
push dword [ebp - 0x20]
push 0x70
push edx
call fcn.00478bc0
add esp, 0x14
mov dword [ebp - 0x84], eax
jmp 0x4b5882
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [ebp - 0x20]
mov dword [eax + ecx*4], 0x70
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 [ebp - 0x28]
test eax, eax
je 0x4b58cd
push eax
push dword [ebp + 8]
call fcn.004a6050
mov edx, eax
add esp, 8
test edx, edx
je 0x4b58ca
mov word [edx + 8], si
mov esi, dword [ebp - 4]
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
je 0x4b58b8
push edx
push 0xfffffffffffffff7
push eax
call fcn.004766f0
add esp, 0xc
jmp 0x4b58ca
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x1c], 0
je 0x4b5902
push dword [ebp - 0x48]
mov edx, dword [ebp + 0xc]
push ebx
push dword [ebp + 0x14]
mov ebx, dword [ebp - 0x20]
push edx
push dword [ebp + 0x10]
push eax
push ebx
push dword [ebp + 8]
call fcn.004ce180
mov ecx, dword [ebp + 8]
add esp, 0x20
cmp dword [ebp - 0x64], 0
mov esi, dword [ebp - 0x34]
je 0x4b5908
mov dword [ebp - 8], ebx
jmp 0x4b5908
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x1c], 0
je 0x4b593a
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4b5917
mov eax, ecx
mov ebx, dword [ebp - 0xd8]
mov byte [eax + 0x14], 1
xor eax, eax
mov dword [ebp - 0x9c], edi
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], esi
jmp 0x4b5d2f
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp + 8]
cmp dword [ebp + 0x24], 0
je 0x4b598a
push 0x10
push edi
push dword [ebp + 0x14]
mov dword [ebp - 0xac], 0
push edx
mov dword [ebp - 0x44], 1
call fcn.0049c8c0
mov edi, dword [ebp - 0xd4]
add esp, 0x10
mov ebx, dword [ebp - 0xd8]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x48], ebx
jmp 0x4b5a3a
cmp byte [edx + 0x12], 0
mov eax, 4
jne 0x4b59b5
cmp dword [ebp - 0x50], 0
jne 0x4b59b5
cmp dword [ebp - 0x38], 0
jne 0x4b59b5
cmp byte [ebp - 0x6c], 0
jne 0x4b59b5
cmp dword [ebp - 0x8c], 0
jne 0x4b59b5
mov eax, 0xc
push dword [ebp - 0xa0]
push eax
push 0
push 0
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push edx
call fcn.004c52f0
add esp, 0x1c
mov dword [ebp - 0xac], eax
test eax, eax
je 0x4b6e6f
movzx edx, byte [eax + 0x2e]
mov ebx, dword [eax + 0x14]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x30]
and eax, 1
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x44], edx
mov dword [ebp - 0xa8], eax
cmp edx, 1
je 0x4b5a3a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x4b5a0d
mov eax, ecx
mov byte [eax + 0x14], 1
cmp edx, 2
jne 0x4b5a3a
test edi, edi
js 0x4b5a3a
mov eax, dword [ebp - 8]
cmp edi, eax
je 0x4b5a3d
mov ebx, dword [ebp - 0x78]
mov eax, edi
sub eax, dword [ebp - 0x60]
xor ecx, ecx
cmp byte [eax + ebx], cl
mov ebx, dword [ebp - 0x48]
setne cl
dec ecx
and edx, ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
test byte [ecx + 0x24], 0x80
jne 0x4b5b52
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b5a6b
push 0
push dword [ebp - 0x14]
push eax
push 0x83
push esi
call fcn.00478bc0
mov edx, dword [ebp - 0x14]
add esp, 0x14
jmp 0x4b5a9c
mov edx, dword [ebp - 8]
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 [ebp - 0x14]
mov dword [eax + ecx*4], 0x83
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x4b5b0c
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x70]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [edi + ecx*4], eax
mov ecx, dword [esi + 0x6c]
mov edi, dword [ebp - 0x5c]
cmp dword [esi + 0x70], ecx
jg 0x4b5ad7
push edx
push dword [ebp - 0x7c]
push dword [ebp - 0x20]
push 0x7c
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b5d2c
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x14]
mov dword [eax + ecx*4], 0x7c
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b5d2c
mov ecx, dword [ebp - 0x84]
test ecx, ecx
je 0x4b5d2f
mov edx, dword [esi]
cmp byte [edx + 0x53], 0
jne 0x4b5d2f
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.004766f0
add esp, 0xc
mov word [esi], 0xb1
mov dword [esi + 0x10], 0
jmp 0x4b5d2c
mov eax, dword [ebp - 0x98]
xor esi, esi
movsx ebx, ax
test ebx, ebx
jle 0x4b5b8d
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
add eax, esi
push eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [ebp - 8]
push ecx
push edi
call fcn.0049a000
mov ecx, dword [ebp - 0xc]
inc esi
add esp, 0x14
cmp esi, ebx
jl 0x4b5b64
mov edi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4b5be7
mov ecx, dword [ebp - 0x84]
test ecx, ecx
je 0x4b5bd3
mov esi, dword [ebp - 4]
mov edx, dword [esi]
cmp byte [edx + 0x53], 0
jne 0x4b5bd3
mov eax, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.004766f0
mov eax, dword [ebp - 0x44]
add esp, 0xc
mov word [esi], 0xb1
mov dword [esi + 0x10], 0
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x9c], ebx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x3c], ecx
jmp 0x4b5d2f
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.004a41b0
mov ecx, dword [ebp - 4]
add esp, 8
mov esi, eax
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x4b5c18
push dword [ebp - 0x3c]
push ebx
push dword [ebp - 0x34]
push 0x5d
push ecx
call fcn.00478bc0
add esp, 0x14
mov edx, eax
jmp 0x4b5c4b
mov edi, dword [ebp - 0x34]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp - 0x3c]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [ebp - 0x5c]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
cmp byte [eax + 0x53], 0
je 0x4b5c8f
cmp ebx, 0xfffffff4
je 0x4b5c66
push esi
push ebx
push eax
call fcn.004766f0
add esp, 0xc
mov esi, dword [ebp - 4]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x4b5cdf
push dword [ebp - 0x34]
push dword [ebp - 0x3c]
push dword [ebp - 0x20]
push 0x86
push esi
call fcn.00478bc0
add esp, 0x14
mov edx, eax
jmp 0x4b5d12
test edx, edx
jns 0x4b5c97
mov edx, dword [ecx + 0x6c]
dec edx
mov eax, dword [ebp - 4]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
test ebx, ebx
jns 0x4b5cce
cmp byte [eax + 1], 0
jne 0x4b5cce
cmp ebx, 0xfffffffd
jne 0x4b5cba
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
jmp 0x4b5c66
test esi, esi
je 0x4b5c66
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x4b5c66
inc dword [esi + 0xc]
jmp 0x4b5c66
push ebx
push esi
mov esi, dword [ebp - 4]
push eax
push esi
call fcn.004cf6e0
add esp, 0x10
jmp 0x4b5c69
mov edi, dword [ebp - 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp - 0x3c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [ebp - 0x34]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [ebp - 0x5c]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x4b5d29
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], ebx
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
cmp dword [ebp + 0x24], 0
jne 0x4b6311
cmp dword [ebp - 0x1c], 0
jne 0x4b5d52
cmp eax, 2
je 0x4b5d52
push dword [ebp - 0xac]
call fcn.004c7fa0
add esp, 4
cmp dword [ebp - 0x64], 0
jne 0x4b5e43
mov ecx, dword [ebp - 0x44]
xor esi, esi
test ecx, ecx
je 0x4b5d82
mov edx, dword [ebp - 0x78]
test ebx, ebx
js 0x4b5d75
mov eax, ebx
sub eax, dword [ebp - 0x60]
mov byte [eax + edx], 0
test edi, edi
js 0x4b5d82
mov eax, edi
sub eax, dword [ebp - 0x60]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x4b5ded
mov ecx, dword [ebp - 0x94]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x4b5ded
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x6c]
cmp dword [edx + 0x70], esi
jg 0x4b5dba
push 0
push 0
push 0
push 0x11
push edx
call fcn.00478bc0
add esp, 0x14
mov esi, eax
jmp 0x4b5ded
lea eax, [esi + 1]
mov dword [edx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edx + 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
push 0
push 0
push dword [ebp - 0x78]
push dword [ebp - 0x60]
push 0
push 0x63
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.004a7e60
add esp, 0x20
test esi, esi
je 0x4b5e43
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x4b5e1f
mov dword [ecx + 0x6c], eax
jmp 0x4b5e43
test esi, esi
jns 0x4b5e25
mov esi, eax
mov eax, dword [ecx]
cmp byte [eax + 0x53], 0
je 0x4b5e34
mov eax, 0x58a0a4
jmp 0x4b5e40
mov eax, dword [ebp - 4]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov esi, dword [ebp - 0x44]
test esi, esi
je 0x4b5f5b
mov eax, dword [ebp - 8]
cmp ebx, eax
mov ebx, dword [ebp - 4]
je 0x4b5e77
cmp edi, eax
mov edi, dword [ebp - 0x30]
je 0x4b5e7a
push dword [ebp - 0x9c]
push dword [ebp - 0x3c]
push edi
push eax
push 0x1d
push ebx
call fcn.004b7ec0
add esp, 0x18
jmp 0x4b5e7a
mov edi, dword [ebp - 0x30]
cmp esi, 1
je 0x4b5e8b
mov eax, dword [ebp + 8]
dec dword [eax + 0x38]
mov esi, dword [eax + 0x38]
mov dword [ebp - 0x54], esi
cmp dword [ebp - 0x28], 0
mov edx, dword [ebp - 0x3c]
jne 0x4b5e97
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b5f2b
push 0
push edi
push edx
push 0x32
push ebx
call fcn.00478bc0
add esp, 0x14
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp byte [ebp - 0xd], 0
je 0x4b63ec
test eax, eax
jne 0x4b6351
mov edx, dword [ebp - 0x40]
cmp dword [edi + 8], eax
je 0x4b63a3
mov esi, dword [ebp - 0x58]
push edx
push esi
push edi
call fcn.0049b1b0
mov edx, dword [ebp - 0x40]
mov edi, eax
add esp, 0xc
cmp edi, edx
je 0x4b63a3
mov edx, dword [esi + 4]
mov eax, dword [ebp + 8]
and edx, 0x200000
neg edx
sbb edx, edx
mov esi, dword [eax + 8]
add edx, 0x4e
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6321
push 0
push dword [ebp - 0x40]
push edi
push edx
push esi
call fcn.00478bc0
mov edx, dword [ebp - 0x40]
add esp, 0x14
jmp 0x4b63a3
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 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
jmp 0x4b5eb2
cmp dword [ebp - 0x28], 0
jne 0x4b6077
cmp dword [ebp - 0x1c], 0
jne 0x4b6077
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b5f93
push 0
push edi
push dword [ebp - 0x20]
push 0x25
push ebx
call fcn.00478bc0
mov edx, dword [ebp - 0x20]
add esp, 0x14
jmp 0x4b5fc1
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x25
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 [ebp + 8]
dec dword [edi + 0x38]
mov ecx, dword [ebx + 0x6c]
mov esi, dword [edi + 0x38]
mov dword [ebp - 0x54], esi
mov dword [ebp - 0xa4], ecx
cmp dword [ebx + 0x70], ecx
jg 0x4b5ffa
push 0
push dword [ebp - 0x14]
push edx
push 0x83
push ebx
call fcn.00478bc0
mov edx, dword [ebp - 0x14]
add esp, 0x14
mov dword [ebp - 0xa4], eax
jmp 0x4b6028
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [eax + ecx*4], 0x83
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b6045
push edx
push esi
push dword [ebp - 8]
push 0x20
push ebx
call fcn.00478bc0
add esp, 0x14
jmp 0x4b5eb5
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x14]
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 0x4b5eb5
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 0x30]
dec dword [eax + 0x38]
mov ecx, dword [ebx + 0x6c]
mov esi, dword [eax + 0x38]
mov dword [ebp - 0x54], esi
cmp dword [ebx + 0x70], ecx
jg 0x4b60a7
push 0
push edi
push dword [ebp - 0x20]
push 0x25
push ebx
call fcn.00478bc0
mov edx, dword [ebp - 0x20]
add esp, 0x14
jmp 0x4b60d5
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x25
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 eax, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0x6c]
mov dword [ebp - 0xa4], ecx
test eax, eax
je 0x4b625d
cmp dword [ebp - 0x64], 0
jne 0x4b6319
cmp dword [ebp - 0x28], 0
je 0x4b61d3
mov eax, dword [ebp - 0x98]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4b6162
lea esp, [esp]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b6130
mov eax, dword [ebp - 0x34]
add eax, esi
push eax
push esi
push edx
push 0x5b
push ebx
call fcn.00478bc0
mov edx, dword [ebp - 0x20]
add esp, 0x14
jmp 0x4b615d
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x34]
add eax, esi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], eax
inc esi
cmp esi, edi
jl 0x4b6110
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x4b6183
push dword [ebp - 0x34]
mov esi, dword [ebp - 0x54]
push esi
push dword [ebp - 8]
push 0x1d
push ebx
call fcn.00478bc0
add esp, 0x14
mov edx, eax
jmp 0x4b61b3
mov esi, dword [ebp - 8]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [ebp - 0x54]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [ebp - 0x34]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x4b5eb2
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x4b5eb2
mov edi, dword [ebp - 0x14]
cmp dword [ebx + 0x70], ecx
jg 0x4b61ef
push 0
push edi
push edx
push 0x83
push ebx
call fcn.00478bc0
add esp, 0x14
jmp 0x4b621a
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x83
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 ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b622e
push edi
push esi
push dword [ebp - 8]
push 0x20
jmp 0x4b5ea9
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b5eb2
mov edi, dword [ebp - 0x3c]
cmp dword [ebx + 0x70], ecx
jg 0x4b6279
push 0
push edi
push edx
push 0x82
push ebx
call fcn.00478bc0
add esp, 0x14
jmp 0x4b62a4
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x82
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 edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x4b62c0
push edi
push esi
push dword [ebp - 8]
push 0x1d
push ebx
call fcn.00478bc0
add esp, 0x14
mov edx, eax
jmp 0x4b62ed
mov edi, dword [ebp - 8]
lea eax, [edx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x4b5eb2
mov eax, dword [ebx + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b5eb2
mov ebx, dword [ebp - 4]
jmp 0x4b5eb2
mov edi, dword [ebp + 8]
jmp 0x4b5eb8
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
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [ebp - 0x40]
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov byte [eax + ecx*4 + 1], 0
jmp 0x4b639b
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b6373
push dword [ebp - 0x40]
mov edx, dword [ebp - 0x4c]
push edx
push dword [ebp - 0x20]
push 0x5b
push ebx
call fcn.00478bc0
mov edx, dword [ebp - 0x40]
add esp, 0x14
jmp 0x4b63a3
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x4c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b63bd
push 0
push 0
push edx
push 0xf
push ebx
call fcn.00478bc0
add esp, 0x14
jmp 0x4b63ec
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 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 [ebp - 0x21], 0
jne 0x4b6491
cmp dword [ebp - 0x38], 0
jne 0x4b649b
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x4b65ba
xor ebx, ebx
push dword [ebp + 0x18]
push dword [ebp - 0xc]
push 3
push 0
push dword [ebp + 0x10]
push dword [ebp - 0x50]
push dword [ebp + 8]
call fcn.004b4060
mov ecx, dword [ebp - 0xc]
or ebx, eax
xor eax, eax
mov dword [ebp - 0x58], ebx
add esp, 0x1c
xor esi, esi
cmp ax, word [ecx + 0x2a]
jge 0x4b655a
xor edi, edi
mov dword [ebp - 0x4c], edi
test byte [ecx + 0x24], 0x20
mov ebx, dword [ecx + 4]
je 0x4b64b8
movzx eax, si
test ax, ax
js 0x4b64b8
movsx ecx, ax
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x4b6472
lea eax, [ebx + 0x10]
mov edi, ecx
test byte [eax], 0x20
jne 0x4b646a
inc edx
add eax, 0x14
sub ecx, 1
jne 0x4b6464
lea eax, [edi + edi*4]
test byte [ebx + eax*4 + 0x10], 0x20
je 0x4b64b0
mov eax, dword [ebp - 0xc]
mov ax, word [eax + 0x2c]
sub ax, dx
add ax, di
mov edi, dword [ebp - 0x4c]
movzx eax, ax
jmp 0x4b64bb
cmp dword [ebp - 0x38], 0
je 0x4b640b
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.0049ff40
add esp, 8
mov ebx, eax
jmp 0x4b640d
mov edi, dword [ebp - 0x4c]
movzx eax, dx
jmp 0x4b64bb
movzx eax, si
movsx edx, ax
add edx, dword [ebp - 0x90]
cmp dword [ebp - 0x58], 0xffffffff
je 0x4b6531
cmp esi, 0x20
jge 0x4b64dd
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [ebp - 0x58], eax
jne 0x4b6531
movzx eax, word [ebx + edi + 0x10]
test al, 1
jne 0x4b6531
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4b6500
push 0
push edx
push 0
push 0x48
push ebx
call fcn.00478bc0
jmp 0x4b6541
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 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 0x4b6544
push edx
push esi
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.0049a000
add esp, 0x14
mov ecx, dword [ebp - 0xc]
inc esi
add edi, 0x14
mov dword [ebp - 0x4c], edi
movsx eax, word [ecx + 0x2a]
cmp esi, eax
jl 0x4b6443
cmp byte [ebp - 0xd], 0
jne 0x4b65b7
cmp dword [ebp - 0x28], 0
jne 0x4b65b7
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b6586
push 0
push dword [ebp - 0x40]
push dword [ebp - 0x14]
push 0x4d
push edx
call fcn.00478bc0
add esp, 0x14
jmp 0x4b65b7
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [ebp - 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0x40]
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 eax, dword [ebp - 0x50]
push dword [ebp + 0x18]
push dword [ebp - 0xc]
push 1
push 1
push dword [ebp + 0x10]
push eax
push dword [ebp + 8]
call fcn.004b4060
mov edx, dword [ebp - 0x88]
mov ebx, eax
mov eax, dword [ebp - 0xc]
xor edi, edi
add esp, 0x1c
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x58], edi
mov esi, edx
mov dword [ebp - 0x90], edi
movzx ecx, word [eax + 0x2a]
cmp di, cx
jge 0x4b674f
xor edx, edx
mov dword [ebp - 0x60], edx
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x4b662c
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b684c
push 0
push esi
push 0
push 0x48
push edx
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6728
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0x10]
test al, 0x60
je 0x4b6649
test al, 0x20
je 0x4b6728
dec esi
jmp 0x4b6728
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x4b680e
cmp dword [ebp - 0x1c], 0
je 0x4b66c2
cmp dword [ebp - 0x64], 0
jne 0x4b6669
mov ecx, dword [ebp - 0x98]
movzx ecx, cx
movsx edx, cx
add edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x4b6691
push esi
push edx
push dword [ebp - 0x20]
push 0x5b
push eax
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6728
mov ebx, dword [ebp - 4]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x6c], eax
mov eax, ebx
mov ebx, dword [ebp - 0x20]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b6725
mov ecx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x90], eax
cmp dword [ecx + 8], 0
je 0x4b6728
push esi
push eax
push ecx
call fcn.0049b1b0
mov ebx, eax
add esp, 0xc
cmp ebx, esi
je 0x4b6725
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + 8]
and edx, 0x200000
neg edx
sbb edx, edx
mov ecx, dword [edi + 0x6c]
add edx, 0x4e
cmp dword [edi + 0x70], ecx
jg 0x4b67df
push 0
push esi
push ebx
push edx
push edi
call fcn.00478bc0
add esp, 0x14
mov edi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xc]
inc edi
add dword [ebp - 0x60], 0x14
inc esi
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x58], edi
movzx ecx, word [eax + 0x2a]
movsx eax, cx
cmp edi, eax
mov eax, dword [ebp - 0xc]
jl 0x4b6600
mov edx, dword [ebp - 0x88]
test byte [eax + 0x24], 0x60
mov ebx, dword [ebp + 8]
je 0x4b6766
push eax
push edx
push ebx
call fcn.00495810
mov eax, dword [ebp - 0xc]
add esp, 0xc
test byte [ebp - 0xb4], 1
mov esi, dword [ebp - 4]
je 0x4b69d0
push dword [ebp - 0x88]
push eax
push esi
call fcn.004b3c20
mov edi, dword [ebp - 0x54]
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push 1
push dword [ebp + 0x10]
push 0x80
push dword [ebp - 0x50]
push ebx
call fcn.00494a30
add esp, 0x30
cmp dword [ebp - 0x64], 0
jne 0x4b69d3
cmp dword [ebp - 0x28], 0
je 0x4b692a
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x4b68a2
push dword [ebp - 0x3c]
push edi
push dword [ebp - 8]
push 0x1d
push esi
call fcn.00478bc0
add esp, 0x14
mov edx, eax
jmp 0x4b68cf
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
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
mov byte [eax + ecx*4 + 1], dl
jmp 0x4b6722
test dword [ebp - 0xb4], 1
je 0x4b6880
cmp edi, 0x1f
jg 0x4b6880
mov eax, 1
mov ecx, edi
shl eax, cl
test ebx, eax
jne 0x4b6880
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b684c
push 0
push esi
push 0
push 0x48
push edx
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6728
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 0x4b6728
push esi
push edi
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.0049a000
add esp, 0x14
mov dword [ebp - 0xa8], 0
jmp 0x4b6728
mov ebx, dword [ebp - 8]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x4b68ec
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x9c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
xor ebx, ebx
mov eax, dword [ebp - 0x88]
xor esi, esi
mov edi, eax
cmp bx, word [ecx + 0x2a]
mov ebx, dword [ebp + 8]
jge 0x4b69b8
xor ebx, ebx
lea ecx, [ecx]
mov eax, dword [ecx + 4]
movzx eax, word [eax + ebx + 0x10]
test al, 0x60
je 0x4b6978
test al, 0x20
je 0x4b699b
dec edi
jmp 0x4b699b
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6946
push dword [ebp - 0x14]
push edi
push dword [ebp - 8]
push 0x20
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b68ec
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [ebp - 0x14]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b68ef
mov eax, dword [ebp - 0x18]
cmp dword [eax + esi*4], 0
jge 0x4b699b
movsx eax, word [ecx + 0x28]
cmp esi, eax
je 0x4b699b
push edi
push esi
push edx
push ecx
push dword [ebp - 4]
call fcn.0049a000
mov ecx, dword [ebp - 0xc]
add esp, 0x14
movsx eax, word [ecx + 0x2a]
inc esi
mov edx, dword [ebp - 8]
add ebx, 0x14
inc edi
cmp esi, eax
jl 0x4b6910
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x88]
test byte [ecx + 0x24], 0x60
je 0x4b6a4a
push ecx
push eax
push ebx
call fcn.00495810
mov esi, dword [ebp - 4]
add esp, 0xc
mov edi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xc]
cmp dword [ebp - 0x64], 0
jne 0x4b6c63
push 0
push dword [ebp - 0x18]
lea eax, [ebp - 0x8c]
push eax
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x6c]
push dword [ebp - 0x14]
push dword [ebp - 0x40]
push dword [ebp - 0xa0]
push dword [ebp - 8]
push dword [ebp - 0x70]
push ecx
push ebx
call fcn.004a0520
add esp, 0x34
cmp dword [ebp - 0x8c], 0
jne 0x4b6a22
cmp byte [ebp - 0x6c], 0
je 0x4b6a9c
cmp dword [ebp - 0x28], 0
je 0x4b6b36
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x4b6a52
push dword [ebp - 0x3c]
push edi
push dword [ebp - 8]
push 0x1d
push esi
call fcn.00478bc0
add esp, 0x14
mov edx, eax
jmp 0x4b6a7f
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 0x54]
jmp 0x4b69d6
mov ebx, dword [ebp - 8]
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x4b6a9c
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x9c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x4b6abd
push dword [ebp - 0x80]
push dword [ebp - 0x18]
push 0
push edx
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.0049f2a0
add esp, 0x18
push 0xffffffffffffffff
push dword [ebp - 0x70]
push dword [ebp - 0xa0]
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.004a2c70
add esp, 0x18
cmp dword [ebp - 0xa8], 0
je 0x4b6b03
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6b87
push 0
push 0
push dword [ebp - 8]
push 0x8b
push esi
call fcn.00478bc0
add esp, 0x14
mov edx, dword [ebp - 8]
cmp ebx, 1
jg 0x4b6b15
cmp byte [ebp - 0x6c], 0
je 0x4b6bf0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6bbe
push 0
push 0
push edx
push 0x7e
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6bf0
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6b55
push dword [ebp - 0x14]
push edi
push dword [ebp - 8]
push 0x20
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6a9c
mov edx, dword [ebp - 8]
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 [ebp - 0x14]
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 0x4b6a9f
mov edx, dword [ebp - 8]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x8b
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
jmp 0x4b6b06
mov edi, dword [ebp - 0x54]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x7e
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
test ebx, ebx
je 0x4b6c0d
push dword [ebp - 0x80]
push dword [ebp - 0x18]
push dword [ebp - 0x40]
push 0
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.0049f2a0
add esp, 0x18
mov ebx, dword [ebp - 0x44]
xor eax, eax
push 0
cmp ebx, 2
push 0
sete al
lea eax, [eax*2 + 4]
push eax
push dword [ebp - 0x70]
push dword [ebp - 0x40]
push dword [ebp - 0xa0]
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.00495630
add esp, 0x24
cmp dword [ebp - 0x38], 0
je 0x4b6c66
push dword [ebp - 0x80]
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.0049f210
add esp, 0x18
jmp 0x4b6c66
mov ebx, dword [ebp - 0x44]
mov edx, dword [ebp - 0xb0]
test edx, edx
je 0x4b6cbc
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6c8a
push 0
push 1
push edx
push 0x53
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6cbc
mov edi, dword [ebp - 0x54]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x53
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
push edi
push dword [ebp + 0x18]
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push 2
push dword [ebp + 0x10]
push 0x80
push dword [ebp - 0x50]
push dword [ebp + 8]
call fcn.00494a30
add esp, 0x24
cmp ebx, 1
je 0x4b6da3
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
cmp ebx, 2
jne 0x4b6d33
add eax, dword [ecx + 0x38]
jns 0x4b6d17
push edi
push esi
push ecx
call fcn.00488850
add esp, 0xc
push dword [ebp - 0xac]
call fcn.004c7fa0
add esp, 4
jmp 0x4b6da3
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
push dword [ebp - 0xac]
mov dword [ecx + edi*4], eax
call fcn.004c7fa0
add esp, 4
jmp 0x4b6da3
add eax, dword [ecx + 0x38]
jns 0x4b6d45
push edi
push esi
push ecx
call fcn.00488850
add esp, 0xc
jmp 0x4b6d4e
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6d6f
mov edx, dword [ebp - 0xa4]
push 0
push edx
push dword [ebp - 0x20]
push 5
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6da3
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp - 0xa4]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 0x30]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4b6dc0
push edx
push esi
push ecx
call fcn.00488850
add esp, 0xc
jmp 0x4b6dc9
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp + 8]
cmp byte [eax + 0x12], 0
jne 0x4b6ded
cmp dword [eax + 0x78], 0
jne 0x4b6ded
cmp dword [ebp + 0x24], 0
jne 0x4b6ded
cmp dword [eax + 0x70], 0
je 0x4b6ded
push eax
call fcn.00466060
add esp, 4
mov edx, dword [ebp - 0xb0]
test edx, edx
je 0x4b6e6f
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4b6e15
push 0
push 1
push edx
push 0x50
push esi
call fcn.00478bc0
add esp, 0x14
jmp 0x4b6e44
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
push 1
push esi
call fcn.004c2440
mov eax, dword [esi]
add esp, 8
cmp byte [eax + 0x53], 0
jne 0x4b6e6f
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push str.rows_updated
push dword [esi + 0x74]
call fcn.004c0d10
add esp, 0x18
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x74]
jmp 0x4b51cc
cmp edi, dword [ebx + 0x154]
jae 0x4b6eb5
cmp edi, dword [ebx + 0x14c]
jb 0x4b6e9d
mov eax, dword [ebx + 0x148]
mov dword [edi], eax
mov dword [ebx + 0x148], edi
jmp 0x4b6f0a
cmp edi, dword [ebx + 0x150]
jb 0x4b6eb5
mov eax, dword [ebx + 0x140]
mov dword [edi], eax
mov dword [ebx + 0x140], edi
jmp 0x4b6f0a
cmp dword [0x5856e0], 0
je 0x4b6f00
mov eax, dword [0x589cf8]
test eax, eax
je 0x4b6ed1
push eax
call dword [0x585730]
add esp, 4
push edi
call dword [0x58570c]
sub dword [0x589dd0], eax
dec dword [0x589df4]
push edi
call dword [0x585704]
mov eax, dword [0x589cf8]
add esp, 8
test eax, eax
je 0x4b6f0a
push eax
call dword [0x585738]
jmp 0x4b6f07
push edi
call dword [0x585704]
add esp, 4
push dword [ebp + 0xc]
push ebx
call fcn.004b2cc0
add esp, 8
test esi, esi
je 0x4b6f24
push esi
push ebx
call fcn.00473590
add esp, 8
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4b6f35
push eax
push ebx
call fcn.0049c5c0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret