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

Disassembly:
sub esp, 0xfc
xor eax, eax
mov dword [esp + 0x8c], 0
push ebx
mov ebx, dword [esp + 0x104]
xorps xmm0, xmm0
mov dword [esp + 0xd0], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x54], eax
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx]
mov dword [esp + 0xac], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0x60], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0xa8], 1
movlpd qword [esp + 0x7c], xmm0
mov dword [esp + 0x64], eax
jne 0x4fd24c
push edi
push dword [esp + 0x10c]
push ebx
call fcn.004f85c0
mov edi, eax
add esp, 8
mov dword [esp + 0x14], edi
test edi, edi
je 0x4fd24b
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x3c], 0xffff8000
test ecx, ecx
je 0x4fad01
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x4fad01
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x4facf5
mov dword [esp + 0x3c], edx
cmp dword [edi + 0x38], 0
push ebp
push esi
jne 0x4fad1b
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x4fad24
cmp dword [eax + 0x30], 0
je 0x4fad24
cmp byte [ebx + 0x9d], 0
je 0x4fad3e
mov esi, dword [esp + 0x118]
xor ebp, ebp
mov dword [esp + 0xd8], 0
mov dword [esp + 0x50], ebp
jmp 0x4fad71
mov esi, dword [esp + 0x118]
lea eax, [esp + 0xe8]
push eax
push esi
push 0x81
push edi
push ebx
call fcn.00516b50
mov ebp, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xfc]
add esp, 0x14
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x114]
mov cl, byte [edi + 0x2b]
mov byte [esp + 0x1b], cl
cmp dword [eax], 1
jle 0x4fad8c
mov eax, dword [esi]
mov dword [esp + 0x28], eax
jmp 0x4fad94
mov dword [esp + 0x28], 0
cmp cl, 1
je 0x4fada0
cmp word [edi + 0x22], 0
jg 0x4fadb2
push edi
push ebx
call fcn.0051c910
add esp, 8
test eax, eax
jne 0x4fd249
push ebp
push edi
push ebx
call fcn.004e70f0
add esp, 0xc
test eax, eax
jne 0x4fd249
mov esi, dword [ebx + 0x28]
mov edx, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x98], edx
lea eax, [esi + 1]
mov dword [ebx + 0x28], eax
test byte [edi + 0x1c], 0x80
mov dword [esp + 0x84], eax
jne 0x4fadf2
mov dword [esp + 0x2c], 0
jmp 0x4fae06
push edi
call fcn.004f12c0
mov dword [esp + 0x30], eax
add esp, 4
mov eax, dword [esp + 0x84]
mov ecx, dword [edi + 8]
xor ebp, ebp
mov dword [esp + 0x64], ebp
test ecx, ecx
je 0x4fae3b
mov edx, eax
cmp dword [esp + 0x2c], ecx
mov eax, edx
cmovne eax, esi
inc edx
mov dword [ebx + 0x28], edx
inc ebp
mov ecx, dword [ecx + 0x14]
mov esi, eax
test ecx, ecx
jne 0x4fae15
mov edx, dword [esp + 0x98]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x4fae5a
mov esi, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x84], eax
mov dword [ebx + 0x28], edx
mov eax, dword [esp + 0x114]
push 0
mov dword [eax + 0x34], esi
movsx eax, word [edi + 0x22]
add eax, ebp
lea eax, [eax*4 + 6]
add eax, ebp
push eax
push dword [esp + 0x78]
call fcn.004d5b60
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x4fd249
movsx eax, word [edi + 0x22]
lea eax, [ecx + eax*4]
lea esi, [eax + 4]
mov dword [esp + 0x74], eax
lea eax, [ebp + 1]
push eax
lea esi, [esi + ebp*4]
push 1
push esi
mov dword [esp + 0x9c], esi
call fcn.005326d0
xor eax, eax
mov byte [esi + ebp + 1], 0
add esp, 0xc
xor ecx, ecx
cmp ax, word [edi + 0x22]
jge 0x4faee7
mov ebx, dword [esp + 0x40]
nop word [eax + eax]
mov dword [ebx + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x4faed0
mov ebx, dword [esp + 0x110]
mov eax, dword [esp + 0x114]
xorps xmm0, xmm0
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0xf4], eax
mov eax, dword [ebx + 8]
movlpd qword [esp + 0xf8], xmm0
mov dword [esp + 0x100], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0xec], ebx
mov dword [esp + 0x104], 0x200
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4faf68
cmp dword [ebx + 0x7c], eax
jne 0x4faf53
mov eax, dword [ebx]
test byte [eax + 0x50], 8
jne 0x4faf53
mov byte [ebx + 0x17], 1
push ebx
call fcn.004fe590
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x4fd239
mov ecx, dword [esp + 0x118]
xor ebp, ebp
xor al, al
mov byte [esp + 0x37], 0
mov byte [esp + 0x23], al
mov dword [esp + 0x58], ebp
cmp dword [ecx], ebp
jle 0x4fb1d3
lea esi, [ecx + 8]
mov dword [esp + 0x3c], esi
nop
mov ecx, dword [esi + 4]
xor dl, dl
mov byte [esp + 0x36], dl
test ecx, ecx
jne 0x4fafa3
mov byte [esp + 0x36], dl
jmp 0x4fafc6
mov al, byte [ecx]
test al, al
je 0x4fafc6
nop dword [eax]
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x571710]
mov al, byte [ecx]
test al, al
jne 0x4fafb0
mov byte [esp + 0x36], dl
cmp dword [esp + 0x28], 0
jne 0x4fafe7
push dword [esi]
lea eax, [esp + 0xf0]
push eax
call fcn.004f2c70
add esp, 8
test eax, eax
jne 0x4fd239
movsx eax, word [edi + 0x22]
xor ebx, ebx
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x4fb083
mov ebp, dword [edi + 4]
mov al, byte [esp + 0x36]
mov ecx, dword [esp + 0x4c]
cmp byte [ebp + 0xa], al
jne 0x4fb077
mov edi, dword [esi + 4]
mov edx, dword [ebp]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x4fb056
test eax, eax
jne 0x4fb068
mov edi, dword [esp + 0x1c]
movsx eax, word [edi + 0x20]
cmp ebx, eax
jne 0x4fb102
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x58]
mov byte [esp + 0x23], 1
mov dword [esp + 0xb0], ebp
mov eax, dword [edi]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x40]
mov dword [eax + ebx*4], ebp
jmp 0x4fb087
movzx ecx, byte [eax + 0x571710]
movzx eax, byte [esi + 0x571710]
sub ecx, eax
jne 0x4fb06b
inc edx
jmp 0x4fb011
mov al, byte [esp + 0x36]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
inc ebx
add ebp, 0x10
cmp ebx, ecx
jl 0x4fb004
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x22]
cmp ebx, eax
jl 0x4fb156
cmp dword [esp + 0x2c], 0
jne 0x4fb245
mov esi, dword [edi + 4]
push str._ROWID_
push esi
call fcn.004f93b0
add esp, 8
test eax, eax
je 0x4fb0df
push str.ROWID
push esi
call fcn.004f93b0
add esp, 8
test eax, eax
je 0x4fb0df
push 0x575f18
push esi
call fcn.004f93b0
add esp, 8
test eax, eax
jne 0x4fb245
mov eax, dword [edi]
or ebx, 0xffffffff
mov edi, dword [esp + 0x1c]
mov edx, str.ROWID
mov byte [esp + 0x23], 1
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ebp
jmp 0x4fb173
cmp dword [esp + 0x2c], 0
je 0x4fb130
mov eax, dword [edi + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 1
je 0x4fb130
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
mov byte [esp + 0x37], 1
mov dword [eax + ebx*4], ebp
jmp 0x4fb087
mov eax, dword [edi + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
jne 0x4fb229
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
mov dword [eax + ebx*4], ebp
jmp 0x4fb087
test ebx, ebx
jns 0x4fb165
mov edi, dword [esp + 0x1c]
mov edx, str.ROWID
jmp 0x4fb173
mov edi, dword [esp + 0x1c]
mov ecx, ebx
add ecx, ecx
mov eax, dword [edi + 4]
mov edx, dword [eax + ecx*8]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x44]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
push edx
push dword [edi]
push 0x17
push dword [esp + 0x120]
call fcn.004cc580
add esp, 0x14
cmp eax, 1
je 0x4fd239
cmp eax, 2
jne 0x4fb1b0
mov eax, dword [esp + 0x40]
mov dword [eax + ebx*4], 0xffffffff
mov ecx, dword [esp + 0x118]
inc ebp
mov esi, dword [esp + 0x3c]
add esi, 0x14
mov dword [esp + 0x58], ebp
mov dword [esp + 0x3c], esi
cmp ebp, dword [ecx]
jl 0x4faf90
mov al, byte [esp + 0x23]
mov edx, dword [esp + 0x1c]
mov bh, byte [esp + 0x37]
add bh, al
mov byte [esp + 0x48], bh
test byte [edx + 0x1c], 0x60
je 0x4fb32a
mov ebp, dword [esp + 0x40]
nop
xor eax, eax
xor ebx, ebx
xor esi, esi
cmp ax, word [edx + 0x22]
jge 0x4fb326
xor edi, edi
cmp dword [ebp + esi*4], 0
jge 0x4fb30e
mov eax, dword [edx + 4]
test byte [eax + edi + 0xe], 0x60
je 0x4fb30e
movzx eax, word [eax + edi + 0xc]
test ax, ax
jne 0x4fb277
xor eax, eax
jmp 0x4fb29b
push dword [eax + ecx*8]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x118]
call fcn.004d7b40
add esp, 0xc
jmp 0x4fd239
mov ecx, dword [esp + 0x118]
lea eax, [ebp*4]
mov ebx, dword [esp + 0x110]
add eax, ebp
push dword [ecx + eax*4 + 0xc]
push str.no_such_column:__s
push ebx
call fcn.004d7b40
add esp, 0xc
mov byte [ebx + 0x11], 1
jmp 0x4fd239
cmp byte [edx + 0x2b], 0
je 0x4fb281
xor eax, eax
jmp 0x4fb29b
mov ecx, dword [edx + 0x34]
test ecx, ecx
jne 0x4fb28c
xor eax, eax
jmp 0x4fb29b
cmp dword [ecx], eax
jge 0x4fb294
xor eax, eax
jmp 0x4fb29b
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 - 0xc]
mov dword [esp + 0xd4], 0
xorps xmm0, xmm0
movq qword [esp + 0xcc], xmm0
mov dword [esp + 0xd4], ebp
movups xmmword [esp + 0xbc], xmm0
mov dword [esp + 0xc0], 0x49ebe0
test eax, eax
je 0x4fb2e5
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.0050c9c0
mov edx, dword [esp + 0x24]
add esp, 8
cmp byte [esp + 0x23], 0
mov ax, word [esp + 0xd0]
jne 0x4fb2fc
mov ecx, 0xfffd
and ax, cx
test ax, ax
je 0x4fb30e
mov dword [ebp + esi*4], 0x1869f
mov ebx, 1
movsx eax, word [edx + 0x22]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x4fb202
test ebx, ebx
jne 0x4fb1f0
mov bh, byte [esp + 0x48]
cmp byte [edx + 0x2b], 1
jne 0x4fb338
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x4fb352
xorps xmm0, xmm0
movlpd qword [esp + 0xa0], xmm0
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x114]
mov dword [ebp + 0x40], eax
movzx eax, bh
push eax
push dword [esp + 0x44]
mov dword [ebp + 0x44], ecx
push edx
push dword [esp + 0x11c]
call fcn.004dfec0
add esp, 0x10
mov ebp, eax
cmp dword [esp + 0x120], 5
mov dword [esp + 0x78], ebp
jne 0x4fb392
mov dword [esp + 0x80], 1
mov eax, dword [esp + 0x1c]
xor edi, edi
mov dword [esp + 0xa8], edi
mov esi, dword [eax + 8]
test esi, esi
je 0x4fb5a9
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x110]
inc ebx
mov dword [esp + 0x4c], ebx
nop dword [eax]
cmp byte [esp + 0x48], 0
jne 0x4fb589
cmp ebp, 1
jg 0x4fb589
cmp esi, dword [esp + 0x2c]
je 0x4fb589
mov eax, dword [esi + 0x24]
test eax, eax
je 0x4fb452
mov ecx, dword [esp + 0x40]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0xc0]
mov dword [esp + 0xd8], 0
movups xmmword [esp + 0xc0], xmm0
push eax
movq qword [esp + 0xd4], xmm0
mov dword [esp + 0xc8], 0x49ebe0
mov dword [esp + 0xdc], ecx
call fcn.0050c9c0
mov cx, word [esp + 0xd8]
add esp, 8
cmp byte [esp + 0x23], 0
jne 0x4fb442
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4fb582
xor eax, eax
xor ebp, ebp
xor edi, edi
cmp ax, word [esi + 0x32]
jae 0x4fb4f8
xor ebx, ebx
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x40]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x4fb47f
cwde
mov eax, dword [ecx + eax*4]
not eax
shr eax, 0x1f
jmp 0x4fb4e0
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movups xmmword [esp + 0xbc], xmm0
mov dword [esp + 0xc0], 0x49ebe0
movq qword [esp + 0xcc], xmm0
mov eax, dword [eax + ebx + 8]
mov dword [esp + 0xd4], ecx
test eax, eax
je 0x4fb4c1
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.0050c9c0
add esp, 8
cmp byte [esp + 0x23], 0
mov cx, word [esp + 0xd0]
jne 0x4fb4d8
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x4fb53f
movzx eax, word [esi + 0x32]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x4fb464
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x110]
mov edi, dword [esp + 0xa8]
lea ecx, [edx + 0x2c]
mov byte [ebx], 0
mov eax, dword [esp + 0x74]
inc ebx
mov dword [esp + 0x4c], ebx
mov dword [eax + edi*4], ebp
inc edi
mov esi, dword [esi + 0x14]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0xa8], edi
test esi, esi
jne 0x4fb3c0
mov bh, byte [esp + 0x48]
mov esi, dword [esp + 0x110]
jmp 0x4fb5b3
mov edx, dword [esp + 0x110]
mov ebp, dword [edx + 0x2c]
lea ecx, [edx + 0x2c]
inc ebp
mov dword [ecx], ebp
movzx eax, word [esi + 0x34]
add eax, ebp
cmp dword [esp + 0x120], 0xb
mov dword [ecx], eax
jne 0x4fb575
cmp byte [esi + 0x36], 5
jne 0x4fb575
mov dword [esp + 0x80], 1
lea ecx, [edx + 0x2c]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0xa8]
jmp 0x4fb59c
mov edx, dword [esp + 0x110]
mov ebp, dword [edx + 0x2c]
lea ecx, [edx + 0x2c]
inc ebp
mov dword [edx + 0x2c], ebp
movzx eax, word [esi + 0x34]
add eax, ebp
mov dword [edx + 0x2c], eax
test ebp, ebp
jne 0x4fb50c
jmp 0x4fb4ff
mov esi, dword [esp + 0x110]
lea ecx, [esi + 0x2c]
inc dword [ecx]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x74]
mov dword [ecx + edi*4], eax
cmp dword [esp + 0x80], 0
je 0x4fb5df
mov eax, dword [esp + 0x64]
inc eax
push eax
push 1
push dword [esp + 0x98]
call fcn.005326d0
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x4fb5f0
mov eax, dword [esp + 0x10]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x50], 0
jne 0x4fb5ff
test ebp, ebp
jne 0x4fb5ff
xor bl, bl
jmp 0x4fb601
mov bl, 1
mov eax, dword [esi + 0x7c]
test eax, eax
mov ecx, dword [esp + 0x44]
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edx, dword [esi + 0x58]
test edx, eax
jne 0x4fb633
bts edx, ecx
mov dword [esi + 0x58], edx
cmp ecx, 1
jne 0x4fb633
push esi
call fcn.004e9570
mov ecx, dword [esp + 0x48]
add esp, 4
mov eax, dword [esi + 0x54]
or byte [esi + 0x14], bl
bts eax, ecx
mov edx, dword [esp + 0x110]
mov dword [esi + 0x54], eax
mov esi, dword [esp + 0x1c]
cmp byte [esi + 0x2b], 1
je 0x4fb6c5
mov eax, dword [esp + 0x74]
mov eax, dword [eax + edi*4]
mov edi, dword [edx + 0x2c]
inc edi
mov dword [esp + 0x94], eax
cmp byte [esp + 0x37], 0
mov dword [esp + 0x60], edi
mov dword [edx + 0x2c], edi
mov dword [esp + 0x24], edi
jne 0x4fb686
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4fb686
mov ecx, edi
test ebp, ebp
je 0x4fb69d
movsx ecx, word [esi + 0x22]
lea eax, [edi + 1]
add ecx, edi
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0x2c], ecx
test bh, bh
jne 0x4fb6a9
test eax, eax
jne 0x4fb6a9
test ebp, ebp
je 0x4fb6b5
lea eax, [ecx + 1]
mov dword [esp + 0x60], eax
mov ecx, eax
mov dword [edx + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x7c], eax
movsx eax, word [esi + 0x22]
add eax, ecx
mov dword [edx + 0x2c], eax
mov cl, byte [esp + 0x1b]
cmp cl, 2
jne 0x4fb6f0
mov ecx, dword [edx + 0x100]
mov eax, dword [esi]
mov dword [esp + 0xa0], ecx
mov cl, byte [esp + 0x1b]
mov dword [esp + 0xe4], edx
mov dword [edx + 0x100], eax
jmp 0x4fb70c
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xa0], eax
cmp dword [esp + 0x28], 0
jne 0x4fb863
cmp cl, 2
jne 0x4fb746
push dword [esp + 0x14]
mov ecx, dword [esp + 0x120]
push dword [esp + 0x12c]
push dword [esp + 0x12c]
push ecx
push esi
push edx
call fcn.004e8ab0
add esp, 0x18
xor edi, edi
xor ebp, ebp
jmp 0x4fb754
mov ebp, dword [esp + 0x128]
mov edi, dword [esp + 0x124]
mov edx, dword [esp + 0x11c]
test edx, edx
je 0x4fb878
mov eax, dword [esp + 0x104]
mov ebx, 0
mov ecx, dword [esp + 0xec]
mov esi, eax
and eax, 0xf7ff6fef
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x104], eax
and esi, 0x8009010
test eax, 0x80000
mov dword [esp + 0xc0], fcn.004c45f0
mov eax, 0x4c59c0
mov dword [esp + 0xc8], ebx
cmovne eax, ebx
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xec]
mov dword [esp + 0xd4], eax
mov eax, dword [edx + 0x18]
add dword [ecx + 0xe0], eax
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
cmp dword [ecx + 0xe0], eax
jle 0x4fb7f6
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.004d7b40
jmp 0x4fd21e
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.0050c9c0
mov edx, dword [esp + 0x124]
add esp, 8
mov ecx, dword [esp + 0xbc]
mov eax, dword [edx + 0x18]
sub dword [ecx + 0xe0], eax
mov ecx, dword [esp + 0x104]
mov eax, ecx
and eax, 0x8010
or ecx, esi
or dword [edx + 4], eax
mov dword [esp + 0x104], ecx
cmp dword [esp + 0x100], ebx
jg 0x4fd221
mov eax, dword [esp + 0xbc]
cmp dword [eax + 0x24], ebx
jg 0x4fd221
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebx
jmp 0x4fb87c
mov ebp, dword [esp + 0x128]
mov edi, dword [esp + 0x124]
mov edx, dword [esp + 0x11c]
mov ebx, dword [esp + 0x10]
cmp byte [esi + 0x2b], 1
jne 0x4fb8b8
push dword [esp + 0x120]
push edx
push dword [esp + 0x48]
push dword [esp + 0xb8]
push dword [esp + 0x128]
push esi
push dword [esp + 0x12c]
push dword [esp + 0x12c]
call fcn.00517e90
add esp, 0x20
jmp 0x4fd221
mov edx, dword [esp + 0x110]
dec dword [edx + 0x38]
mov eax, dword [edx + 0x38]
mov dword [esp + 0x88], eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x4fb965
cmp dword [edx + 0x80], 0
jne 0x4fb965
cmp byte [edx + 0x12], 0
jne 0x4fb965
cmp byte [edx + 0x9b], 0
jne 0x4fb965
cmp dword [esp + 0x12c], 0
jne 0x4fb965
mov esi, dword [edx + 0x2c]
inc esi
mov dword [edx + 0x2c], esi
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0xdc], esi
cmp dword [ebx + 0x70], ecx
jg 0x4fb936
push 0
push esi
push 0
push 0x47
push ebx
call fcn.004b0300
add esp, 0x14
jmp 0x4fb965
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x47
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
cmp dword [esp + 0x28], 0
jne 0x4fbadc
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1c], 0x80
jne 0x4fbadc
mov ecx, dword [ebx + 0x6c]
mov ebp, dword [esp + 0x94]
cmp dword [ebx + 0x70], ecx
jg 0x4fb9a1
push dword [esp + 0x24]
push ebp
push 0
push 0x4b
push ebx
call fcn.004b0300
add esp, 0x14
jmp 0x4fb9d0
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x110]
mov edx, dword [esp + 0x10]
mov esi, dword [edi + 0x28]
mov dword [esp + 0x30], esi
lea eax, [esi + 1]
mov dword [edi + 0x28], eax
mov ebx, dword [ebx + 0x6c]
mov dword [esp + 0x58], ebx
cmp dword [edx + 0x70], ebx
jg 0x4fba0b
push ebp
push 0
push esi
push 0x76
push edx
call fcn.004b0300
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x58], ebx
jmp 0x4fba36
lea eax, [ebx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x12c], 0
je 0x4fbcc9
mov ecx, dword [esp + 0x11c]
mov edi, 1
push 0x10
push dword [esp + 0x8c]
mov dword [esp + 0xc0], 0
push ecx
push dword [esp + 0x11c]
mov dword [esp + 0x4c], edi
call fcn.004dba00
mov ebp, dword [esp + 0xb4]
add esp, 0x10
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xb4], 0
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test byte [eax + 0x1c], 0x80
jne 0x4fbf0f
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4fbe1c
push 0
push dword [esp + 0x28]
push dword [esp + 0x1c]
push 0x87
push edx
call fcn.004b0300
mov edx, dword [esp + 0x24]
add esp, 0x14
jmp 0x4fbe53
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4fbaea
movzx edx, word [eax + 0x32]
jmp 0x4fbaec
xor edx, edx
mov esi, dword [esp + 0x110]
mov dword [esp + 0x5c], edx
mov eax, dword [esi + 0x2c]
lea ecx, [eax + 1]
mov dword [esp + 0x54], ecx
movsx ecx, dx
mov edx, dword [esp + 0x28]
add eax, ecx
inc edx
add eax, edx
cmp dword [esp + 0x12c], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esi + 0x2c], eax
jne 0x4fbdbf
cmp byte [esp + 0x1b], 2
jne 0x4fbb33
movsx eax, word [edx + 0x22]
jmp 0x4fbb35
xor eax, eax
mov ebx, dword [esp + 0x110]
lea esi, [eax + ecx]
mov eax, dword [esp + 0x110]
add esi, dword [esp + 0x28]
cmp dword [esp + 0x2c], 0
mov edx, dword [eax + 0x28]
mov dword [esp + 0x30], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
mov ebx, dword [esp + 0x10]
je 0x4fbbbb
mov eax, dword [esp + 0x54]
lea edx, [eax - 1]
add edx, ecx
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4fbb84
push edx
push eax
push 0
push 0x4b
push ebx
call fcn.004b0300
add esp, 0x14
jmp 0x4fbbb7
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x10]
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 edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebx + 0x6c]
mov dword [esp + 0x58], ebx
cmp dword [ecx + 0x70], ebx
jg 0x4fbbe2
push 0
push esi
push edx
push 0x76
push ecx
call fcn.004b0300
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x58], ebx
jmp 0x4fbc15
lea eax, [ebx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x58]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4fbc75
push eax
push dword [esp + 0x114]
call fcn.004e7650
mov edx, eax
add esp, 8
test edx, edx
je 0x4fbc71
mov word [edx + 8], si
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4fbc5f
cmp dword [eax + 0x210], 0
jne 0x4fbc71
add dword [edx], 0xffffffff
jne 0x4fbc71
push edx
push dword [edx + 0xc]
call fcn.004d5c80
add esp, 8
jmp 0x4fbc71
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 + 0x2c]
cmp dword [esp + 0x28], 0
je 0x4fbcbe
mov ecx, dword [esp + 0x11c]
mov ebx, dword [esp + 0x30]
push ebp
push edi
push ecx
push dword [esp + 0x120]
mov ecx, dword [esp + 0x128]
push ecx
push eax
push ebx
push dword [esp + 0x12c]
call fcn.005171d0
add esp, 0x20
cmp byte [esp + 0x1b], 2
jne 0x4fbddd
mov dword [esp + 0x14], ebx
jmp 0x4fbddd
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x110]
cmp byte [edi + 0x12], 0
mov eax, 4
mov ecx, dword [esp + 0x11c]
jne 0x4fbd0c
cmp dword [esp + 0x50], 0
jne 0x4fbd0c
cmp dword [esp + 0x78], 0
jne 0x4fbd0c
cmp byte [esp + 0x48], 0
jne 0x4fbd0c
cmp dword [esp + 0x80], 0
jne 0x4fbd0c
test ecx, ecx
je 0x4fbd07
test dword [ecx + 4], 0x400000
jne 0x4fbd0c
mov eax, 0xc
push dword [esp + 0x84]
push eax
push 0
push 0
push 0
push ecx
push dword [esp + 0x12c]
push edi
call fcn.0050cd50
add esp, 0x20
mov dword [esp + 0xb8], eax
test eax, eax
je 0x4fd221
movzx edi, byte [eax + 0x2e]
mov edx, dword [eax + 0x30]
mov ecx, dword [eax + 0x14]
and edx, 1
mov ebp, dword [eax + 0x18]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0xb4], edx
cmp edi, 1
je 0x4fba99
mov ecx, dword [esp + 0x110]
mov eax, dword [ecx + 0x7c]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
mov ecx, dword [esp + 0x14]
cmp edi, 2
jne 0x4fba9d
test ebp, ebp
js 0x4fba9d
cmp ebp, ecx
je 0x4fba9d
mov ecx, dword [esp + 0x90]
mov eax, ebp
sub eax, dword [esp + 0x98]
cmp byte [eax + ecx], 0
mov ecx, dword [esp + 0x14]
je 0x4fba9d
xor edi, edi
mov dword [esp + 0x3c], edi
jmp 0x4fba9d
mov edx, dword [esp + 0x14]
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], edx
cmp dword [esp + 0x28], ebx
je 0x4fba44
mov ecx, dword [esp + 0x110]
mov ebp, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov eax, dword [ecx + 0x7c]
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x5c]
xor edi, edi
mov dword [esp + 0x3c], edi
mov byte [ecx + 0x14], 1
movsx ecx, ax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x38], eax
jmp 0x4fc096
mov ebp, 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], ebp
mov ebp, dword [esp + 0x24]
mov dword [eax + ecx*4 + 8], ebp
mov ebp, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test edi, edi
jne 0x4fbecb
mov ecx, dword [esp + 0x110]
mov ebx, dword [esp + 0x74]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0xa8]
mov dword [ebx + ecx*4], eax
mov ecx, dword [edx + 0x6c]
mov ebx, dword [esp + 0x94]
cmp dword [edx + 0x70], ecx
jg 0x4fbe9f
push dword [esp + 0x24]
push ebx
push esi
push 0x80
push edx
call fcn.004b0300
add esp, 0x14
jmp 0x4fc092
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x80
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4fc08e
test ebx, ebx
je 0x4fc092
mov edx, dword [edx]
cmp byte [edx + 0x57], 0
jne 0x4fc092
mov eax, dword [esp + 0x10]
lea ecx, [ebx + ebx*4]
mov eax, dword [eax + 0x68]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.004ad720
add esp, 0xc
mov word [esi], 0xb8
mov dword [esi + 0x10], 0
jmp 0x4fc092
mov eax, dword [esp + 0x5c]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4fbf53
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
add eax, esi
push eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push ecx
push ebx
push ebp
call fcn.004d8dd0
mov ecx, dword [esp + 0x28]
inc esi
add esp, 0x14
cmp esi, edi
jl 0x4fbf24
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x4fbfa8
test ebx, ebx
je 0x4fbf92
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
cmp byte [edx + 0x57], 0
jne 0x4fbf92
mov eax, dword [eax + 0x68]
lea ecx, [ebx + ebx*4]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.004ad720
add esp, 0xc
mov word [esi], 0xb8
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x5c]
cwde
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x38], eax
jmp 0x4fc092
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
test esi, esi
jne 0x4fbfc2
push eax
push dword [esp + 0x74]
call fcn.004a2360
add esp, 8
mov esi, eax
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
movsx edi, ax
mov edx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], edx
jg 0x4fbfee
push dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x5c]
push edi
push 0x61
push ebx
call fcn.004b0300
add esp, 0x14
mov edx, eax
jmp 0x4fc025
mov ebp, dword [esp + 0x54]
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], edi
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], ebp
mov ebp, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x5c]
cwde
push eax
push esi
push edx
push ebx
call fcn.004fe420
mov ecx, dword [ebx + 0x6c]
add esp, 0x10
mov eax, dword [esp + 0x5c]
movsx edx, ax
cmp dword [ebx + 0x70], ecx
jg 0x4fc063
push edx
push edi
push dword [esp + 0x40]
push dword [esp + 0x3c]
push 0x8a
push ebx
call fcn.00497760
mov edi, dword [esp + 0x54]
add esp, 0x18
jmp 0x4fc092
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0xfd8a
mov dword [eax + ecx*4 + 0x10], edx
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x12c], 0
jne 0x4fc67d
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x4fc0c0
cmp edi, 2
je 0x4fc0c0
push dword [esp + 0xb8]
call fcn.00510260
add esp, 4
cmp byte [esp + 0x1b], 2
je 0x4fc20e
xor esi, esi
test edi, edi
je 0x4fc165
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
test ebx, ebx
js 0x4fc0ef
mov eax, ebx
sub eax, edx
mov byte [eax + ecx], 0
test ebp, ebp
js 0x4fc0fb
mov eax, ebp
sub eax, edx
mov byte [eax + ecx], 0
cmp edi, 2
jne 0x4fc165
mov ecx, dword [esp + 0x64]
xor eax, eax
test ebp, ebp
setns al
sub ecx, eax
test ecx, ecx
jle 0x4fc165
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x6c]
cmp dword [edx + 0x70], esi
jg 0x4fc132
push 0
push 0
push 0
push 0xf
push edx
call fcn.004b0300
add esp, 0x14
mov esi, eax
jmp 0x4fc165
lea eax, [esi + 1]
mov dword [edx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edx + 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
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x98]
push dword [esp + 0xa4]
push 0
push 0x71
push dword [esp + 0x34]
push dword [esp + 0x12c]
call fcn.004e9340
add esp, 0x20
test esi, esi
je 0x4fc1cc
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x4fc1ad
mov edx, ecx
mov dword [edx + 0x6c], eax
jmp 0x4fc1d0
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
je 0x4fc1bc
mov eax, 0x590c20
jmp 0x4fc1c9
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 + 0x28]
test edi, edi
je 0x4fc2bd
mov esi, dword [esp + 0x14]
cmp ebx, esi
je 0x4fc241
cmp ebp, esi
je 0x4fc241
mov ecx, dword [edx + 0x6c]
mov ebx, dword [esp + 0x88]
cmp dword [edx + 0x70], ecx
jg 0x4fc214
push dword [esp + 0x6c]
push dword [esp + 0x3c]
push ebx
push esi
push 0x1c
push edx
call fcn.00497760
add esp, 0x18
jmp 0x4fc248
mov edx, dword [esp + 0x10]
jmp 0x4fc1d4
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4fc248
mov ebx, dword [esp + 0x88]
cmp edi, 1
je 0x4fc25f
mov ecx, dword [esp + 0x110]
mov esi, dword [ecx + 0x38]
dec esi
mov dword [esp + 0x68], esi
mov dword [ecx + 0x38], esi
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x2c], 0
mov edx, dword [esp + 0x24]
cmovne edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc28d
push 0
push ebx
push edx
push 0x32
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fc681
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4fc681
cmp dword [esp + 0x2c], 0
jne 0x4fc3e1
test esi, esi
jne 0x4fc3e1
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc2f6
push esi
push dword [esp + 0x8c]
push ebx
push 0x24
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fc328
mov edx, dword [esp + 0x88]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 4], ebx
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 + 0x110]
mov ebp, dword [esp + 0x24]
mov esi, dword [ecx + 0x38]
dec esi
mov dword [ecx + 0x38], esi
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x68], esi
mov dword [esp + 0x9c], edx
cmp dword [edi + 0x70], edx
jg 0x4fc368
push 0
push ebp
push ebx
push 0x87
push edi
call fcn.004b0300
add esp, 0x14
mov dword [esp + 0x9c], eax
jmp 0x4fc393
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc3b1
push ebp
push esi
push dword [esp + 0x1c]
push 0x1f
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fc685
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], 0x1f
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4fc685
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esi + 0x38]
dec ebp
mov dword [esi + 0x38], ebp
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x68], ebp
cmp dword [edi + 0x70], ecx
jg 0x4fc41a
push 0
push dword [esp + 0x8c]
push ebx
push 0x24
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fc44c
mov edx, dword [esp + 0x88]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x24
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x9c], ecx
test eax, eax
je 0x4fc5e0
cmp byte [esp + 0x1b], 2
je 0x4fc690
cmp dword [esp + 0x2c], 0
je 0x4fc53f
mov eax, dword [esp + 0x5c]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x4fc4e6
mov ebp, dword [esp + 0x10]
nop dword [eax]
mov edx, dword [esp + 0x54]
mov ecx, dword [ebp + 0x6c]
add edx, esi
cmp dword [ebp + 0x70], ecx
jg 0x4fc4ae
push edx
push esi
push ebx
push 0x5e
push ebp
call fcn.004b0300
add esp, 0x14
jmp 0x4fc4d9
mov ebx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [ebp + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x68]
mov dword [eax + ecx*4], 0x5e
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], 0
inc esi
cmp esi, edi
jl 0x4fc490
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x10]
movsx edx, ax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc50f
push edx
push dword [esp + 0x58]
push ebp
push dword [esp + 0x20]
push 0x1c
push edi
call fcn.00497760
add esp, 0x18
jmp 0x4fc685
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x54]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4fc685
cmp dword [edi + 0x70], ecx
jg 0x4fc55f
push 0
push dword [esp + 0x28]
push ebx
push 0x87
push edi
call fcn.004b0300
mov edx, dword [esp + 0x38]
add esp, 0x14
jmp 0x4fc58e
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc5ac
push edx
push ebp
push dword [esp + 0x1c]
push 0x1f
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fc68c
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 + 0x24]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4fc68c
cmp dword [edi + 0x70], ecx
jg 0x4fc600
push 0
push dword [esp + 0x3c]
push ebx
push 0x86
push edi
call fcn.004b0300
mov edx, dword [esp + 0x4c]
add esp, 0x14
jmp 0x4fc62f
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc64c
push 0
push edx
push ebp
push dword [esp + 0x20]
push 0x1c
push edi
call fcn.00497760
add esp, 0x18
jmp 0x4fc68c
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 + 0x38]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4fc68c
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x110]
mov eax, dword [esp + 0x28]
cmp byte [esp + 0x23], 0
je 0x4fc793
mov ebp, dword [esp + 0x60]
test eax, eax
jne 0x4fc704
cmp dword [esi + 8], eax
je 0x4fc74a
mov ebx, dword [esp + 0xac]
push ebp
push ebx
push esi
call fcn.004d9e90
mov ecx, eax
add esp, 0xc
cmp ecx, ebp
je 0x4fc74a
test ebx, ebx
je 0x4fc6ef
test dword [ebx + 4], 0x400000
jne 0x4fc6da
cmp byte [ebx], 0xb0
jne 0x4fc6ef
push ebp
push ecx
mov eax, 0x50
push eax
push dword [esi + 8]
call fcn.004fdf80
add esp, 0x10
jmp 0x4fc74a
push ebp
push ecx
mov eax, 0x51
push eax
push dword [esi + 8]
call fcn.004fdf80
add esp, 0x10
jmp 0x4fc74a
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0xb0]
cmp dword [edi + 0x70], ecx
jg 0x4fc723
push ebp
push edx
push ebx
push 0x5e
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fc74a
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc764
push 0
push 0
push ebp
push 0xd
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fc793
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x37], 0
jne 0x4fc7c7
cmp dword [esp + 0x78], 0
jne 0x4fc7ce
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4fc98b
xor ebp, ebp
mov dword [esp + 0x64], ebp
mov ecx, dword [esp + 0x1c]
xor edi, edi
cmp byte [ecx + 0x2b], 2
jne 0x4fc7e3
or edi, 0xffffffff
jmp 0x4fc84b
cmp dword [esp + 0x78], 0
je 0x4fc7ad
push dword [esp + 0x1c]
push esi
call fcn.004dfdc0
add esp, 8
mov dword [esp + 0x64], eax
mov ebp, eax
jmp 0x4fc7b3
mov eax, dword [esp + 0x50]
mov esi, eax
test eax, eax
je 0x4fc84b
mov ebp, ecx
nop
cmp byte [esi + 8], 0x81
jne 0x4fc83c
test byte [esi + 9], 3
je 0x4fc83c
push dword [esp + 0x118]
push dword [esi + 0x10]
call fcn.0049eb10
add esp, 8
test eax, eax
je 0x4fc83c
cmp byte [esi + 0xa], 0
je 0x4fc81d
or edi, 0xffffffff
jmp 0x4fc83c
push dword [esp + 0x120]
push ebp
push esi
push dword [esp + 0x11c]
call fcn.004afe30
add esp, 0x10
test eax, eax
je 0x4fc83c
or edi, dword [eax + 0x10]
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x4fc7f0
mov ebp, dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
xor eax, eax
or ebp, edi
xor esi, esi
cmp ax, word [ecx + 0x22]
jge 0x4fc90e
xor edi, edi
nop dword [eax]
mov eax, dword [ecx + 4]
push esi
push ecx
movzx ebx, word [eax + edi + 0xe]
call fcn.004f9970
movsx edx, ax
add esp, 8
add edx, dword [esp + 0xe0]
cmp ebp, 0xffffffff
je 0x4fc8e4
cmp esi, 0x20
jge 0x4fc893
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
jne 0x4fc8e4
test bl, 1
jne 0x4fc8e4
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x4fc8b3
push 0
push edx
push 0
push 0x4b
push ebx
call fcn.004b0300
jmp 0x4fc8f7
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 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 0x4fc8fa
push edx
push esi
push dword [esp + 0x1c]
push dword [esp + 0x28]
push dword [esp + 0x20]
call fcn.004d8dd0
add esp, 0x14
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 0x10
movsx eax, word [ecx + 0x22]
cmp esi, eax
jl 0x4fc860
cmp byte [esp + 0x23], 0
mov edi, dword [esp + 0x10]
jne 0x4fc93e
cmp dword [esp + 0x2c], 0
jne 0x4fc93e
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fc956
mov edx, dword [esp + 0x60]
push 0
push edx
push dword [esp + 0x2c]
push 0x50
push edi
call fcn.004b0300
add esp, 0x14
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x1c]
xor ebp, ebp
cmp byte [ebx + 0x2b], 2
jne 0x4fc991
or ebp, 0xffffffff
jmp 0x4fc9f1
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
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
jmp 0x4fc93e
mov edi, dword [esp + 0x10]
jmp 0x4fc942
mov esi, eax
test eax, eax
je 0x4fc9f1
mov edi, dword [esp + 0x110]
nop
cmp byte [esi + 8], 0x81
jne 0x4fc9e6
test byte [esi + 9], 1
je 0x4fc9e6
push dword [esp + 0x118]
push dword [esi + 0x10]
call fcn.0049eb10
add esp, 8
test eax, eax
je 0x4fc9e6
cmp byte [esi + 0xa], 0
je 0x4fc9cd
or ebp, 0xffffffff
jmp 0x4fc9e6
push dword [esp + 0x120]
push ebx
push esi
push edi
call fcn.004afe30
add esp, 0x10
test eax, eax
je 0x4fc9e6
or ebp, dword [eax + 0x14]
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x4fc9a0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x7c]
xor ebx, ebx
mov esi, ecx
movzx eax, word [eax + 0x22]
cmp dx, ax
jge 0x4fcbe5
mov ecx, eax
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x20]
cmp ebx, eax
jne 0x4fca3c
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fcb70
push 0
push esi
push 0
push 0x4b
push edi
call fcn.004b0300
jmp 0x4fcbbc
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0xe]
test al, 0x60
je 0x4fca5a
test al, 0x20
je 0x4fcbbf
dec esi
jmp 0x4fcbbf
mov eax, dword [esp + 0x40]
mov eax, dword [eax + ebx*4]
test eax, eax
js 0x4fcb3a
cmp dword [esp + 0x28], 0
je 0x4fcace
cmp byte [esp + 0x1b], 2
je 0x4fca7b
mov ecx, dword [esp + 0x5c]
movzx ecx, cx
movsx edx, cx
mov ecx, dword [edi + 0x6c]
add edx, eax
cmp dword [edi + 0x70], ecx
jg 0x4fca9e
push esi
push edx
push dword [esp + 0x38]
push 0x5e
push edi
call fcn.004b0300
jmp 0x4fcbbc
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
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
jmp 0x4fcbbf
mov ecx, dword [esp + 0x118]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*4 + 8]
mov eax, dword [esp + 0x110]
cmp dword [eax + 8], 0
je 0x4fcbbf
push esi
push edi
push eax
call fcn.004d9e90
mov ecx, eax
add esp, 0xc
cmp ecx, esi
je 0x4fcbbf
test edi, edi
je 0x4fcb1b
test dword [edi + 4], 0x400000
jne 0x4fcb14
cmp byte [edi], 0xb0
jne 0x4fcb1b
mov eax, 0x50
jmp 0x4fcb20
mov eax, 0x51
push esi
push ecx
push eax
mov eax, dword [esp + 0x11c]
push dword [eax + 8]
call fcn.004fdf80
add esp, 0x10
jmp 0x4fcbbf
test dword [esp + 0xd8], 1
je 0x4fcba1
cmp ebx, 0x1f
jg 0x4fcba1
mov eax, 1
mov ecx, ebx
shl eax, cl
test ebp, eax
jne 0x4fcba1
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fcb70
push 0
push esi
push 0
push 0x4b
push edi
call fcn.004b0300
jmp 0x4fcbbc
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 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 0x4fcbbf
push esi
push ebx
push dword [esp + 0x1c]
push dword [esp + 0x28]
push edi
call fcn.004d8dd0
mov dword [esp + 0xc8], 0
add esp, 0x14
mov eax, dword [esp + 0x1c]
inc ebx
add dword [esp + 0x64], 0x10
inc esi
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x10]
movzx eax, word [eax + 0x22]
mov ecx, eax
cwde
cmp ebx, eax
jl 0x4fca12
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x1c]
test byte [esi + 0x1c], 0x60
je 0x4fcc00
push esi
push ecx
push dword [esp + 0x118]
call fcn.004d36d0
add esp, 0xc
test byte [esp + 0xd8], 1
je 0x4fcd84
push dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
push esi
push edi
call fcn.004f97b0
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x12c]
push ebx
push ebp
push dword [esp + 0x38]
push esi
push 1
push dword [esp + 0x138]
push 0x81
push dword [esp + 0x78]
push dword [esp + 0x13c]
call fcn.004d2560
add esp, 0x30
cmp byte [esp + 0x1b], 2
je 0x4fd054
cmp dword [esp + 0x2c], 0
mov ecx, dword [edi + 0x6c]
mov eax, dword [edi + 0x70]
je 0x4fccab
cmp eax, ecx
jg 0x4fcc86
push dword [esp + 0x6c]
push dword [esp + 0x3c]
push ebx
push dword [esp + 0x20]
push 0x1c
push edi
call fcn.00497760
add esp, 0x18
jmp 0x4fccf4
mov esi, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], esi
jmp 0x4fcce8
cmp eax, ecx
jg 0x4fccc5
push dword [esp + 0x24]
push ebx
push dword [esp + 0x1c]
push 0x1f
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fccf4
mov esi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 4], edx
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x7c]
xor esi, esi
mov edi, eax
cmp dx, word [ecx + 0x22]
mov edx, dword [esp + 0x14]
jge 0x4fcd67
xor ebx, ebx
nop
mov eax, dword [ecx + 4]
movzx eax, word [eax + ebx + 0xe]
test al, 0x60
je 0x4fcd28
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x4fcd4e
mov eax, dword [esp + 0x40]
cmp dword [eax + esi*4], 0
jge 0x4fcd4e
movsx eax, word [ecx + 0x20]
cmp esi, eax
je 0x4fcd4e
push edi
push esi
push edx
push ecx
push dword [esp + 0x20]
call fcn.004d8dd0
mov ecx, dword [esp + 0x30]
add esp, 0x14
movsx eax, word [ecx + 0x22]
inc esi
mov edx, dword [esp + 0x14]
add ebx, 0x10
inc edi
cmp esi, eax
jl 0x4fcd10
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x7c]
test byte [ecx + 0x1c], 0x60
je 0x4fcd9c
push ecx
push eax
push dword [esp + 0x118]
call fcn.004d36d0
mov ecx, dword [esp + 0x28]
add esp, 0xc
jmp 0x4fcd9c
cmp byte [esp + 0x1b], 2
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x120]
je 0x4fd050
mov ecx, esi
push 0
push dword [esp + 0x44]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x88]
push eax
push ebx
push ebp
push dword [esp + 0x5c]
push dword [esp + 0x3c]
push dword [esp + 0x7c]
push dword [esp + 0xa4]
push esi
push dword [esp + 0x9c]
push ecx
push dword [esp + 0x140]
call fcn.004e10d0
add esp, 0x34
cmp dword [esp + 0x80], 0
jne 0x4fcdf1
mov al, byte [esp + 0x48]
test al, al
je 0x4fcea1
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
mov eax, dword [edi + 0x70]
je 0x4fce55
cmp eax, ecx
jg 0x4fce24
push dword [esp + 0x6c]
push dword [esp + 0x3c]
push ebx
push esi
push 0x1c
push edi
call fcn.00497760
mov al, byte [esp + 0x60]
add esp, 0x18
jmp 0x4fcea5
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0xfd1c
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], edx
mov al, byte [esp + 0x48]
jmp 0x4fcea5
cmp eax, ecx
jg 0x4fce70
push dword [esp + 0x24]
push ebx
push esi
push 0x1f
push edi
call fcn.004b0300
mov al, byte [esp + 0x5c]
add esp, 0x14
jmp 0x4fcea5
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x1f
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov al, byte [esp + 0x48]
jmp 0x4fcea9
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x78]
test esi, esi
je 0x4fcecf
movzx eax, al
push eax
push dword [esp + 0x44]
push 0
push edx
push dword [esp + 0x2c]
push dword [esp + 0x124]
call fcn.004df170
add esp, 0x18
push 0xffffffffffffffff
push dword [esp + 0x78]
push dword [esp + 0x8c]
push dword [esp + 0x20]
push dword [esp + 0x2c]
push dword [esp + 0x124]
call fcn.004e3850
add esp, 0x18
cmp dword [esp + 0xb4], 0
je 0x4fcf1b
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fcf4d
push 0
push 0
push dword [esp + 0x1c]
push 0x8f
push edi
call fcn.004b0300
add esp, 0x14
mov edx, dword [esp + 0x14]
cmp esi, 1
jg 0x4fcf30
mov al, byte [esp + 0x48]
test al, al
je 0x4fcfb9
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fcf82
push 0
push 0
push edx
push 0x82
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fcfb5
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
jmp 0x4fcf1f
mov ebx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x82
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 al, byte [esp + 0x48]
test esi, esi
je 0x4fcfde
movzx eax, al
push eax
push dword [esp + 0x44]
push dword [esp + 0x68]
push 0
push dword [esp + 0x2c]
push dword [esp + 0x124]
call fcn.004df170
add esp, 0x18
mov esi, dword [esp + 0x3c]
xor eax, eax
push 0
cmp esi, 2
push 0
sete al
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x80]
push dword [esp + 0x70]
push dword [esp + 0x98]
push dword [esp + 0x2c]
push dword [esp + 0x38]
push dword [esp + 0x130]
call fcn.004d3480
add esp, 0x24
cmp dword [esp + 0x78], 0
je 0x4fd058
movzx eax, byte [esp + 0x48]
push eax
push dword [esp + 0x44]
push dword [esp + 0x2c]
push dword [esp + 0x124]
push dword [esp + 0x2c]
push dword [esp + 0x124]
call fcn.004df0e0
add esp, 0x18
jmp 0x4fd058
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
test edx, edx
je 0x4fd0b0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fd07d
push 0
push 1
push edx
push 0x56
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fd0b0
mov ebx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
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 + 0x50]
test eax, eax
je 0x4fd0e3
push ebx
push ebp
push dword [esp + 0x2c]
mov ebp, dword [esp + 0x11c]
push dword [esp + 0x28]
push 2
push dword [esp + 0x12c]
push 0x81
push eax
push ebp
call fcn.004d2560
add esp, 0x24
jmp 0x4fd0ea
mov ebp, dword [esp + 0x110]
cmp esi, 1
je 0x4fd1b5
mov ecx, dword [edi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
cmp esi, 2
jne 0x4fd141
add eax, dword [ecx + 0x38]
jns 0x4fd124
push ebx
push edi
push ecx
call fcn.004c4330
add esp, 0xc
push dword [esp + 0xb8]
call fcn.00510260
add esp, 4
jmp 0x4fd1b5
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
push dword [esp + 0xb8]
mov dword [ecx + ebx*4], eax
call fcn.00510260
add esp, 4
jmp 0x4fd1b5
add eax, dword [ecx + 0x38]
jns 0x4fd153
push ebx
push edi
push ecx
call fcn.004c4330
add esp, 0xc
jmp 0x4fd15c
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + ebx*4], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4fd17f
mov edx, dword [esp + 0x9c]
push 0
push edx
push dword [esp + 0x38]
push 0x27
push edi
call fcn.004b0300
add esp, 0x14
jmp 0x4fd1b5
mov edx, dword [esp + 0x30]
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 + 0x9c]
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
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x88]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4fd1d6
push edx
push edi
push ecx
call fcn.004c4330
add esp, 0xc
jmp 0x4fd1df
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
cmp byte [ebp + 0x12], 0
jne 0x4fd207
cmp dword [ebp + 0x80], 0
jne 0x4fd207
cmp dword [esp + 0x12c], 0
jne 0x4fd207
cmp dword [ebp + 0x78], 0
je 0x4fd207
push ebp
call fcn.0049a0e0
add esp, 4
mov eax, dword [esp + 0xdc]
test eax, eax
je 0x4fd221
push str.rows_updated
push eax
push edi
call fcn.004d1b30
add esp, 0xc
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x4fd239
mov ecx, dword [esp + 0xa0]
mov dword [eax + 0x100], ecx
push dword [esp + 0x40]
push dword [esp + 0x74]
call fcn.004d5a50
add esp, 8
pop esi
pop ebp
pop edi
push dword [esp + 0x108]
push dword [esp + 0x68]
call fcn.004f7ff0
mov eax, dword [esp + 0x114]
add esp, 8
pop ebx
test eax, eax
je 0x4fd278
push eax
push dword [esp + 0x64]
call fcn.004a90a0
add esp, 8
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x4fd290
push eax
push dword [esp + 0x64]
call fcn.004db740
add esp, 8
add esp, 0xfc
ret