Function at 0x5280a0
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 0x52a6dc
push edi
push dword [esp + 0x10c]
push ebx
call fcn.00525a60
mov edi, eax
add esp, 8
mov dword [esp + 0x14], edi
test edi, edi
je 0x52a6db
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x3c], 0xffff8000
test ecx, ecx
je 0x528191
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 0x528191
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x528185
mov dword [esp + 0x3c], edx
cmp dword [edi + 0x38], 0
push ebp
push esi
jne 0x5281ab
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x5281b4
cmp dword [eax + 0x30], 0
je 0x5281b4
cmp byte [ebx + 0x9d], 0
je 0x5281ce
mov esi, dword [esp + 0x118]
xor ebp, ebp
mov dword [esp + 0xd8], 0
mov dword [esp + 0x50], ebp
jmp 0x528201
mov esi, dword [esp + 0x118]
lea eax, [esp + 0xe8]
push eax
push esi
push 0x81
push edi
push ebx
call fcn.00543fe0
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 0x52821c
mov eax, dword [esi]
mov dword [esp + 0x28], eax
jmp 0x528224
mov dword [esp + 0x28], 0
cmp cl, 1
je 0x528230
cmp word [edi + 0x22], 0
jg 0x528242
push edi
push ebx
call fcn.00549db0
add esp, 8
test eax, eax
jne 0x52a6d9
push ebp
push edi
push ebx
call fcn.00514580
add esp, 0xc
test eax, eax
jne 0x52a6d9
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 0x528282
mov dword [esp + 0x2c], 0
jmp 0x528296
push edi
call fcn.0051e750
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 0x5282cb
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 0x5282a5
mov edx, dword [esp + 0x98]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x5282ea
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.00503030
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x52a6d9
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 sub.VCRUNTIME140.dll_memset
xor eax, eax
mov byte [esi + ebp + 1], 0
add esp, 0xc
xor ecx, ecx
cmp ax, word [edi + 0x22]
jge 0x528377
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 0x528360
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 0x5283f8
cmp dword [ebx + 0x7c], eax
jne 0x5283e3
mov eax, dword [ebx]
test byte [eax + 0x50], 8
jne 0x5283e3
mov byte [ebx + 0x17], 1
push ebx
call fcn.0052ba20
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x52a6c9
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 0x528663
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 0x528433
mov byte [esp + 0x36], dl
jmp 0x528456
mov al, byte [ecx]
test al, al
je 0x528456
nop dword [eax]
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x6e8f28]
mov al, byte [ecx]
test al, al
jne 0x528440
mov byte [esp + 0x36], dl
cmp dword [esp + 0x28], 0
jne 0x528477
push dword [esi]
lea eax, [esp + 0xf0]
push eax
call fcn.00520110
add esp, 8
test eax, eax
jne 0x52a6c9
movsx eax, word [edi + 0x22]
xor ebx, ebx
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x528513
mov ebp, dword [edi + 4]
mov al, byte [esp + 0x36]
mov ecx, dword [esp + 0x4c]
cmp byte [ebp + 0xa], al
jne 0x528507
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 0x5284e6
test eax, eax
jne 0x5284f8
mov edi, dword [esp + 0x1c]
movsx eax, word [edi + 0x20]
cmp ebx, eax
jne 0x528592
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 0x528517
movzx ecx, byte [eax + 0x6e8f28]
movzx eax, byte [esi + 0x6e8f28]
sub ecx, eax
jne 0x5284fb
inc edx
jmp 0x5284a1
mov al, byte [esp + 0x36]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
inc ebx
add ebp, 0x10
cmp ebx, ecx
jl 0x528494
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x22]
cmp ebx, eax
jl 0x5285e6
cmp dword [esp + 0x2c], 0
jne 0x5286d5
mov esi, dword [edi + 4]
push str._ROWID_
push esi
call fcn.00526840
add esp, 8
test eax, eax
je 0x52856f
push str.ROWID
push esi
call fcn.00526840
add esp, 8
test eax, eax
je 0x52856f
push 0x6ed7c8
push esi
call fcn.00526840
add esp, 8
test eax, eax
jne 0x5286d5
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 0x528603
cmp dword [esp + 0x2c], 0
je 0x5285c0
mov eax, dword [edi + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 1
je 0x5285c0
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 0x528517
mov eax, dword [edi + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
jne 0x5286b9
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x3c]
mov dword [eax + ebx*4], ebp
jmp 0x528517
test ebx, ebx
jns 0x5285f5
mov edi, dword [esp + 0x1c]
mov edx, str.ROWID
jmp 0x528603
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.004f9a50
add esp, 0x14
cmp eax, 1
je 0x52a6c9
cmp eax, 2
jne 0x528640
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 0x528420
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 0x5287ba
mov ebp, dword [esp + 0x40]
nop
xor eax, eax
xor ebx, ebx
xor esi, esi
cmp ax, word [edx + 0x22]
jge 0x5287b6
xor edi, edi
cmp dword [ebp + esi*4], 0
jge 0x52879e
mov eax, dword [edx + 4]
test byte [eax + edi + 0xe], 0x60
je 0x52879e
movzx eax, word [eax + edi + 0xc]
test ax, ax
jne 0x528707
xor eax, eax
jmp 0x52872b
push dword [eax + ecx*8]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x118]
call fcn.00505000
add esp, 0xc
jmp 0x52a6c9
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.00505000
add esp, 0xc
mov byte [ebx + 0x11], 1
jmp 0x52a6c9
cmp byte [edx + 0x2b], 0
je 0x528711
xor eax, eax
jmp 0x52872b
mov ecx, dword [edx + 0x34]
test ecx, ecx
jne 0x52871c
xor eax, eax
jmp 0x52872b
cmp dword [ecx], eax
jge 0x528724
xor eax, eax
jmp 0x52872b
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], 0x4cc0f0
test eax, eax
je 0x528775
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00539e50
mov edx, dword [esp + 0x24]
add esp, 8
cmp byte [esp + 0x23], 0
mov ax, word [esp + 0xd0]
jne 0x52878c
mov ecx, 0xfffd
and ax, cx
test ax, ax
je 0x52879e
mov dword [ebp + esi*4], 0x1869f
mov ebx, 1
movsx eax, word [edx + 0x22]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x528692
test ebx, ebx
jne 0x528680
mov bh, byte [esp + 0x48]
cmp byte [edx + 0x2b], 1
jne 0x5287c8
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x5287e2
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.0050d380
add esp, 0x10
mov ebp, eax
cmp dword [esp + 0x120], 5
mov dword [esp + 0x78], ebp
jne 0x528822
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 0x528a39
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 0x528a19
cmp ebp, 1
jg 0x528a19
cmp esi, dword [esp + 0x2c]
je 0x528a19
mov eax, dword [esi + 0x24]
test eax, eax
je 0x5288e2
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], 0x4cc0f0
mov dword [esp + 0xdc], ecx
call fcn.00539e50
mov cx, word [esp + 0xd8]
add esp, 8
cmp byte [esp + 0x23], 0
jne 0x5288d2
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x528a12
xor eax, eax
xor ebp, ebp
xor edi, edi
cmp ax, word [esi + 0x32]
jae 0x528988
xor ebx, ebx
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x40]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x52890f
cwde
mov eax, dword [ecx + eax*4]
not eax
shr eax, 0x1f
jmp 0x528970
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movups xmmword [esp + 0xbc], xmm0
mov dword [esp + 0xc0], 0x4cc0f0
movq qword [esp + 0xcc], xmm0
mov eax, dword [eax + ebx + 8]
mov dword [esp + 0xd4], ecx
test eax, eax
je 0x528951
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00539e50
add esp, 8
cmp byte [esp + 0x23], 0
mov cx, word [esp + 0xd0]
jne 0x528968
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x5289cf
movzx eax, word [esi + 0x32]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x5288f4
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 0x528850
mov bh, byte [esp + 0x48]
mov esi, dword [esp + 0x110]
jmp 0x528a43
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 0x528a05
cmp byte [esi + 0x36], 5
jne 0x528a05
mov dword [esp + 0x80], 1
lea ecx, [edx + 0x2c]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0xa8]
jmp 0x528a2c
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 0x52899c
jmp 0x52898f
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 0x528a6f
mov eax, dword [esp + 0x64]
inc eax
push eax
push 1
push dword [esp + 0x98]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x528a80
mov eax, dword [esp + 0x10]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x50], 0
jne 0x528a8f
test ebp, ebp
jne 0x528a8f
xor bl, bl
jmp 0x528a91
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 0x528ac3
bts edx, ecx
mov dword [esi + 0x58], edx
cmp ecx, 1
jne 0x528ac3
push esi
call fcn.00516a00
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 0x528b55
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 0x528b16
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x528b16
mov ecx, edi
test ebp, ebp
je 0x528b2d
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 0x528b39
test eax, eax
jne 0x528b39
test ebp, ebp
je 0x528b45
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 0x528b80
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 0x528b9c
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 0x528cf3
cmp cl, 2
jne 0x528bd6
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.00515f40
add esp, 0x18
xor edi, edi
xor ebp, ebp
jmp 0x528be4
mov ebp, dword [esp + 0x128]
mov edi, dword [esp + 0x124]
mov edx, dword [esp + 0x11c]
test edx, edx
je 0x528d08
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.004f1ad0
mov eax, 0x4f2ea0
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 0x528c86
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.00505000
jmp 0x52a6ae
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.00539e50
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 0x52a6b1
mov eax, dword [esp + 0xbc]
cmp dword [eax + 0x24], ebx
jg 0x52a6b1
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebx
jmp 0x528d0c
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 0x528d48
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.00545320
add esp, 0x20
jmp 0x52a6b1
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 0x528df5
cmp dword [edx + 0x80], 0
jne 0x528df5
cmp byte [edx + 0x12], 0
jne 0x528df5
cmp byte [edx + 0x9b], 0
jne 0x528df5
cmp dword [esp + 0x12c], 0
jne 0x528df5
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 0x528dc6
push 0
push esi
push 0
push 0x47
push ebx
call fcn.004dd7e0
add esp, 0x14
jmp 0x528df5
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 0x528f6c
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1c], 0x80
jne 0x528f6c
mov ecx, dword [ebx + 0x6c]
mov ebp, dword [esp + 0x94]
cmp dword [ebx + 0x70], ecx
jg 0x528e31
push dword [esp + 0x24]
push ebp
push 0
push 0x4b
push ebx
call fcn.004dd7e0
add esp, 0x14
jmp 0x528e60
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 0x528e9b
push ebp
push 0
push esi
push 0x76
push edx
call fcn.004dd7e0
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x58], ebx
jmp 0x528ec6
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 0x529159
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.00508ec0
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 0x52939f
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x5292ac
push 0
push dword [esp + 0x28]
push dword [esp + 0x1c]
push 0x87
push edx
call fcn.004dd7e0
mov edx, dword [esp + 0x24]
add esp, 0x14
jmp 0x5292e3
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x528f7a
movzx edx, word [eax + 0x32]
jmp 0x528f7c
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 0x52924f
cmp byte [esp + 0x1b], 2
jne 0x528fc3
movsx eax, word [edx + 0x22]
jmp 0x528fc5
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 0x52904b
mov eax, dword [esp + 0x54]
lea edx, [eax - 1]
add edx, ecx
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x529014
push edx
push eax
push 0
push 0x4b
push ebx
call fcn.004dd7e0
add esp, 0x14
jmp 0x529047
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 0x529072
push 0
push esi
push edx
push 0x76
push ecx
call fcn.004dd7e0
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x58], ebx
jmp 0x5290a5
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 0x529105
push eax
push dword [esp + 0x114]
call fcn.00514ae0
mov edx, eax
add esp, 8
test edx, edx
je 0x529101
mov word [edx + 8], si
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5290ef
cmp dword [eax + 0x210], 0
jne 0x529101
add dword [edx], 0xffffffff
jne 0x529101
push edx
push dword [edx + 0xc]
call fcn.00503150
add esp, 8
jmp 0x529101
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 0x52914e
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.00544660
add esp, 0x20
cmp byte [esp + 0x1b], 2
jne 0x52926d
mov dword [esp + 0x14], ebx
jmp 0x52926d
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x110]
cmp byte [edi + 0x12], 0
mov eax, 4
mov ecx, dword [esp + 0x11c]
jne 0x52919c
cmp dword [esp + 0x50], 0
jne 0x52919c
cmp dword [esp + 0x78], 0
jne 0x52919c
cmp byte [esp + 0x48], 0
jne 0x52919c
cmp dword [esp + 0x80], 0
jne 0x52919c
test ecx, ecx
je 0x529197
test dword [ecx + 4], 0x400000
jne 0x52919c
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.0053a1e0
add esp, 0x20
mov dword [esp + 0xb8], eax
test eax, eax
je 0x52a6b1
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 0x528f29
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 0x528f2d
test ebp, ebp
js 0x528f2d
cmp ebp, ecx
je 0x528f2d
mov ecx, dword [esp + 0x90]
mov eax, ebp
sub eax, dword [esp + 0x98]
cmp byte [eax + ecx], 0
mov ecx, dword [esp + 0x14]
je 0x528f2d
xor edi, edi
mov dword [esp + 0x3c], edi
jmp 0x528f2d
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 0x528ed4
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 0x529526
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 0x52935b
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 0x52932f
push dword [esp + 0x24]
push ebx
push esi
push 0x80
push edx
call fcn.004dd7e0
add esp, 0x14
jmp 0x529522
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 0x52951e
test ebx, ebx
je 0x529522
mov edx, dword [edx]
cmp byte [edx + 0x57], 0
jne 0x529522
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.004dac00
add esp, 0xc
mov word [esi], 0xb8
mov dword [esi + 0x10], 0
jmp 0x529522
mov eax, dword [esp + 0x5c]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x5293e3
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.00506290
mov ecx, dword [esp + 0x28]
inc esi
add esp, 0x14
cmp esi, edi
jl 0x5293b4
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x529438
test ebx, ebx
je 0x529422
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
cmp byte [edx + 0x57], 0
jne 0x529422
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.004dac00
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 0x529522
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
test esi, esi
jne 0x529452
push eax
push dword [esp + 0x74]
call fcn.004cf870
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 0x52947e
push dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x5c]
push edi
push 0x61
push ebx
call fcn.004dd7e0
add esp, 0x14
mov edx, eax
jmp 0x5294b5
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.0052b8b0
mov ecx, dword [ebx + 0x6c]
add esp, 0x10
mov eax, dword [esp + 0x5c]
movsx edx, ax
cmp dword [ebx + 0x70], ecx
jg 0x5294f3
push edx
push edi
push dword [esp + 0x40]
push dword [esp + 0x3c]
push 0x8a
push ebx
call fcn.004c4c90
mov edi, dword [esp + 0x54]
add esp, 0x18
jmp 0x529522
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 0x529b0d
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x529550
cmp edi, 2
je 0x529550
push dword [esp + 0xb8]
call fcn.0053d6f0
add esp, 4
cmp byte [esp + 0x1b], 2
je 0x52969e
xor esi, esi
test edi, edi
je 0x5295f5
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
test ebx, ebx
js 0x52957f
mov eax, ebx
sub eax, edx
mov byte [eax + ecx], 0
test ebp, ebp
js 0x52958b
mov eax, ebp
sub eax, edx
mov byte [eax + ecx], 0
cmp edi, 2
jne 0x5295f5
mov ecx, dword [esp + 0x64]
xor eax, eax
test ebp, ebp
setns al
sub ecx, eax
test ecx, ecx
jle 0x5295f5
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x6c]
cmp dword [edx + 0x70], esi
jg 0x5295c2
push 0
push 0
push 0
push 0xf
push edx
call fcn.004dd7e0
add esp, 0x14
mov esi, eax
jmp 0x5295f5
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.005167d0
add esp, 0x20
test esi, esi
je 0x52965c
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x6c]
lea eax, [edx - 1]
cmp esi, eax
jne 0x52963d
mov edx, ecx
mov dword [edx + 0x6c], eax
jmp 0x529660
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
je 0x52964c
mov eax, 0x7937a8
jmp 0x529659
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 0x52974d
mov esi, dword [esp + 0x14]
cmp ebx, esi
je 0x5296d1
cmp ebp, esi
je 0x5296d1
mov ecx, dword [edx + 0x6c]
mov ebx, dword [esp + 0x88]
cmp dword [edx + 0x70], ecx
jg 0x5296a4
push dword [esp + 0x6c]
push dword [esp + 0x3c]
push ebx
push esi
push 0x1c
push edx
call fcn.004c4c90
add esp, 0x18
jmp 0x5296d8
mov edx, dword [esp + 0x10]
jmp 0x529664
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 0x5296d8
mov ebx, dword [esp + 0x88]
cmp edi, 1
je 0x5296ef
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 0x52971d
push 0
push ebx
push edx
push 0x32
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x529b11
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 0x529b11
cmp dword [esp + 0x2c], 0
jne 0x529871
test esi, esi
jne 0x529871
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x529786
push esi
push dword [esp + 0x8c]
push ebx
push 0x24
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x5297b8
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 0x5297f8
push 0
push ebp
push ebx
push 0x87
push edi
call fcn.004dd7e0
add esp, 0x14
mov dword [esp + 0x9c], eax
jmp 0x529823
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 0x529841
push ebp
push esi
push dword [esp + 0x1c]
push 0x1f
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x529b15
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 0x529b15
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 0x5298aa
push 0
push dword [esp + 0x8c]
push ebx
push 0x24
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x5298dc
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 0x529a70
cmp byte [esp + 0x1b], 2
je 0x529b20
cmp dword [esp + 0x2c], 0
je 0x5299cf
mov eax, dword [esp + 0x5c]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x529976
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 0x52993e
push edx
push esi
push ebx
push 0x5e
push ebp
call fcn.004dd7e0
add esp, 0x14
jmp 0x529969
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 0x529920
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 0x52999f
push edx
push dword [esp + 0x58]
push ebp
push dword [esp + 0x20]
push 0x1c
push edi
call fcn.004c4c90
add esp, 0x18
jmp 0x529b15
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 0x529b15
cmp dword [edi + 0x70], ecx
jg 0x5299ef
push 0
push dword [esp + 0x28]
push ebx
push 0x87
push edi
call fcn.004dd7e0
mov edx, dword [esp + 0x38]
add esp, 0x14
jmp 0x529a1e
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 0x529a3c
push edx
push ebp
push dword [esp + 0x1c]
push 0x1f
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x529b1c
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 0x529b1c
cmp dword [edi + 0x70], ecx
jg 0x529a90
push 0
push dword [esp + 0x3c]
push ebx
push 0x86
push edi
call fcn.004dd7e0
mov edx, dword [esp + 0x4c]
add esp, 0x14
jmp 0x529abf
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 0x529adc
push 0
push edx
push ebp
push dword [esp + 0x20]
push 0x1c
push edi
call fcn.004c4c90
add esp, 0x18
jmp 0x529b1c
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 0x529b1c
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 0x529c23
mov ebp, dword [esp + 0x60]
test eax, eax
jne 0x529b94
cmp dword [esi + 8], eax
je 0x529bda
mov ebx, dword [esp + 0xac]
push ebp
push ebx
push esi
call fcn.00507350
mov ecx, eax
add esp, 0xc
cmp ecx, ebp
je 0x529bda
test ebx, ebx
je 0x529b7f
test dword [ebx + 4], 0x400000
jne 0x529b6a
cmp byte [ebx], 0xb0
jne 0x529b7f
push ebp
push ecx
mov eax, 0x50
push eax
push dword [esi + 8]
call fcn.0052b410
add esp, 0x10
jmp 0x529bda
push ebp
push ecx
mov eax, 0x51
push eax
push dword [esi + 8]
call fcn.0052b410
add esp, 0x10
jmp 0x529bda
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0xb0]
cmp dword [edi + 0x70], ecx
jg 0x529bb3
push ebp
push edx
push ebx
push 0x5e
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x529bda
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 0x529bf4
push 0
push 0
push ebp
push 0xd
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x529c23
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 0x529c57
cmp dword [esp + 0x78], 0
jne 0x529c5e
mov eax, dword [esp + 0x50]
test eax, eax
je 0x529e1b
xor ebp, ebp
mov dword [esp + 0x64], ebp
mov ecx, dword [esp + 0x1c]
xor edi, edi
cmp byte [ecx + 0x2b], 2
jne 0x529c73
or edi, 0xffffffff
jmp 0x529cdb
cmp dword [esp + 0x78], 0
je 0x529c3d
push dword [esp + 0x1c]
push esi
call fcn.0050d280
add esp, 8
mov dword [esp + 0x64], eax
mov ebp, eax
jmp 0x529c43
mov eax, dword [esp + 0x50]
mov esi, eax
test eax, eax
je 0x529cdb
mov ebp, ecx
nop
cmp byte [esi + 8], 0x81
jne 0x529ccc
test byte [esi + 9], 3
je 0x529ccc
push dword [esp + 0x118]
push dword [esi + 0x10]
call fcn.004cc020
add esp, 8
test eax, eax
je 0x529ccc
cmp byte [esi + 0xa], 0
je 0x529cad
or edi, 0xffffffff
jmp 0x529ccc
push dword [esp + 0x120]
push ebp
push esi
push dword [esp + 0x11c]
call fcn.004dd310
add esp, 0x10
test eax, eax
je 0x529ccc
or edi, dword [eax + 0x10]
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x529c80
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 0x529d9e
xor edi, edi
nop dword [eax]
mov eax, dword [ecx + 4]
push esi
push ecx
movzx ebx, word [eax + edi + 0xe]
call fcn.00526e00
movsx edx, ax
add esp, 8
add edx, dword [esp + 0xe0]
cmp ebp, 0xffffffff
je 0x529d74
cmp esi, 0x20
jge 0x529d23
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
jne 0x529d74
test bl, 1
jne 0x529d74
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x529d43
push 0
push edx
push 0
push 0x4b
push ebx
call fcn.004dd7e0
jmp 0x529d87
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 0x529d8a
push edx
push esi
push dword [esp + 0x1c]
push dword [esp + 0x28]
push dword [esp + 0x20]
call fcn.00506290
add esp, 0x14
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 0x10
movsx eax, word [ecx + 0x22]
cmp esi, eax
jl 0x529cf0
cmp byte [esp + 0x23], 0
mov edi, dword [esp + 0x10]
jne 0x529dce
cmp dword [esp + 0x2c], 0
jne 0x529dce
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x529de6
mov edx, dword [esp + 0x60]
push 0
push edx
push dword [esp + 0x2c]
push 0x50
push edi
call fcn.004dd7e0
add esp, 0x14
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x1c]
xor ebp, ebp
cmp byte [ebx + 0x2b], 2
jne 0x529e21
or ebp, 0xffffffff
jmp 0x529e81
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 0x529dce
mov edi, dword [esp + 0x10]
jmp 0x529dd2
mov esi, eax
test eax, eax
je 0x529e81
mov edi, dword [esp + 0x110]
nop
cmp byte [esi + 8], 0x81
jne 0x529e76
test byte [esi + 9], 1
je 0x529e76
push dword [esp + 0x118]
push dword [esi + 0x10]
call fcn.004cc020
add esp, 8
test eax, eax
je 0x529e76
cmp byte [esi + 0xa], 0
je 0x529e5d
or ebp, 0xffffffff
jmp 0x529e76
push dword [esp + 0x120]
push ebx
push esi
push edi
call fcn.004dd310
add esp, 0x10
test eax, eax
je 0x529e76
or ebp, dword [eax + 0x14]
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x529e30
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 0x52a075
mov ecx, eax
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x20]
cmp ebx, eax
jne 0x529ecc
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x52a000
push 0
push esi
push 0
push 0x4b
push edi
call fcn.004dd7e0
jmp 0x52a04c
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0xe]
test al, 0x60
je 0x529eea
test al, 0x20
je 0x52a04f
dec esi
jmp 0x52a04f
mov eax, dword [esp + 0x40]
mov eax, dword [eax + ebx*4]
test eax, eax
js 0x529fca
cmp dword [esp + 0x28], 0
je 0x529f5e
cmp byte [esp + 0x1b], 2
je 0x529f0b
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 0x529f2e
push esi
push edx
push dword [esp + 0x38]
push 0x5e
push edi
call fcn.004dd7e0
jmp 0x52a04c
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 0x52a04f
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 0x52a04f
push esi
push edi
push eax
call fcn.00507350
mov ecx, eax
add esp, 0xc
cmp ecx, esi
je 0x52a04f
test edi, edi
je 0x529fab
test dword [edi + 4], 0x400000
jne 0x529fa4
cmp byte [edi], 0xb0
jne 0x529fab
mov eax, 0x50
jmp 0x529fb0
mov eax, 0x51
push esi
push ecx
push eax
mov eax, dword [esp + 0x11c]
push dword [eax + 8]
call fcn.0052b410
add esp, 0x10
jmp 0x52a04f
test dword [esp + 0xd8], 1
je 0x52a031
cmp ebx, 0x1f
jg 0x52a031
mov eax, 1
mov ecx, ebx
shl eax, cl
test ebp, eax
jne 0x52a031
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x52a000
push 0
push esi
push 0
push 0x4b
push edi
call fcn.004dd7e0
jmp 0x52a04c
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 0x52a04f
push esi
push ebx
push dword [esp + 0x1c]
push dword [esp + 0x28]
push edi
call fcn.00506290
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 0x529ea2
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x1c]
test byte [esi + 0x1c], 0x60
je 0x52a090
push esi
push ecx
push dword [esp + 0x118]
call fcn.00500ba0
add esp, 0xc
test byte [esp + 0xd8], 1
je 0x52a214
push dword [esp + 0x7c]
mov edi, dword [esp + 0x14]
push esi
push edi
call fcn.00526c40
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.004ffa30
add esp, 0x30
cmp byte [esp + 0x1b], 2
je 0x52a4e4
cmp dword [esp + 0x2c], 0
mov ecx, dword [edi + 0x6c]
mov eax, dword [edi + 0x70]
je 0x52a13b
cmp eax, ecx
jg 0x52a116
push dword [esp + 0x6c]
push dword [esp + 0x3c]
push ebx
push dword [esp + 0x20]
push 0x1c
push edi
call fcn.004c4c90
add esp, 0x18
jmp 0x52a184
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 0x52a178
cmp eax, ecx
jg 0x52a155
push dword [esp + 0x24]
push ebx
push dword [esp + 0x1c]
push 0x1f
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x52a184
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 0x52a1f7
xor ebx, ebx
nop
mov eax, dword [ecx + 4]
movzx eax, word [eax + ebx + 0xe]
test al, 0x60
je 0x52a1b8
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x52a1de
mov eax, dword [esp + 0x40]
cmp dword [eax + esi*4], 0
jge 0x52a1de
movsx eax, word [ecx + 0x20]
cmp esi, eax
je 0x52a1de
push edi
push esi
push edx
push ecx
push dword [esp + 0x20]
call fcn.00506290
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 0x52a1a0
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x7c]
test byte [ecx + 0x1c], 0x60
je 0x52a22c
push ecx
push eax
push dword [esp + 0x118]
call fcn.00500ba0
mov ecx, dword [esp + 0x28]
add esp, 0xc
jmp 0x52a22c
cmp byte [esp + 0x1b], 2
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x120]
je 0x52a4e0
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.0050e590
add esp, 0x34
cmp dword [esp + 0x80], 0
jne 0x52a281
mov al, byte [esp + 0x48]
test al, al
je 0x52a331
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
mov eax, dword [edi + 0x70]
je 0x52a2e5
cmp eax, ecx
jg 0x52a2b4
push dword [esp + 0x6c]
push dword [esp + 0x3c]
push ebx
push esi
push 0x1c
push edi
call fcn.004c4c90
mov al, byte [esp + 0x60]
add esp, 0x18
jmp 0x52a335
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 0x52a335
cmp eax, ecx
jg 0x52a300
push dword [esp + 0x24]
push ebx
push esi
push 0x1f
push edi
call fcn.004dd7e0
mov al, byte [esp + 0x5c]
add esp, 0x14
jmp 0x52a335
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 0x52a339
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x78]
test esi, esi
je 0x52a35f
movzx eax, al
push eax
push dword [esp + 0x44]
push 0
push edx
push dword [esp + 0x2c]
push dword [esp + 0x124]
call fcn.0050c630
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.00510d10
add esp, 0x18
cmp dword [esp + 0xb4], 0
je 0x52a3ab
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x52a3dd
push 0
push 0
push dword [esp + 0x1c]
push 0x8f
push edi
call fcn.004dd7e0
add esp, 0x14
mov edx, dword [esp + 0x14]
cmp esi, 1
jg 0x52a3c0
mov al, byte [esp + 0x48]
test al, al
je 0x52a449
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x52a412
push 0
push 0
push edx
push 0x82
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x52a445
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 0x52a3af
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 0x52a46e
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.0050c630
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.00500950
add esp, 0x24
cmp dword [esp + 0x78], 0
je 0x52a4e8
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.0050c5a0
add esp, 0x18
jmp 0x52a4e8
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
test edx, edx
je 0x52a540
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x52a50d
push 0
push 1
push edx
push 0x56
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x52a540
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 0x52a573
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.004ffa30
add esp, 0x24
jmp 0x52a57a
mov ebp, dword [esp + 0x110]
cmp esi, 1
je 0x52a645
mov ecx, dword [edi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
cmp esi, 2
jne 0x52a5d1
add eax, dword [ecx + 0x38]
jns 0x52a5b4
push ebx
push edi
push ecx
call fcn.004f1810
add esp, 0xc
push dword [esp + 0xb8]
call fcn.0053d6f0
add esp, 4
jmp 0x52a645
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
push dword [esp + 0xb8]
mov dword [ecx + ebx*4], eax
call fcn.0053d6f0
add esp, 4
jmp 0x52a645
add eax, dword [ecx + 0x38]
jns 0x52a5e3
push ebx
push edi
push ecx
call fcn.004f1810
add esp, 0xc
jmp 0x52a5ec
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 0x52a60f
mov edx, dword [esp + 0x9c]
push 0
push edx
push dword [esp + 0x38]
push 0x27
push edi
call fcn.004dd7e0
add esp, 0x14
jmp 0x52a645
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 0x52a666
push edx
push edi
push ecx
call fcn.004f1810
add esp, 0xc
jmp 0x52a66f
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
cmp byte [ebp + 0x12], 0
jne 0x52a697
cmp dword [ebp + 0x80], 0
jne 0x52a697
cmp dword [esp + 0x12c], 0
jne 0x52a697
cmp dword [ebp + 0x78], 0
je 0x52a697
push ebp
call fcn.004c7610
add esp, 4
mov eax, dword [esp + 0xdc]
test eax, eax
je 0x52a6b1
push str.rows_updated
push eax
push edi
call fcn.004ff000
add esp, 0xc
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x52a6c9
mov ecx, dword [esp + 0xa0]
mov dword [eax + 0x100], ecx
push dword [esp + 0x40]
push dword [esp + 0x74]
call fcn.00502f20
add esp, 8
pop esi
pop ebp
pop edi
push dword [esp + 0x108]
push dword [esp + 0x68]
call fcn.00525490
mov eax, dword [esp + 0x114]
add esp, 8
pop ebx
test eax, eax
je 0x52a708
push eax
push dword [esp + 0x64]
call fcn.004d6580
add esp, 8
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x52a720
push eax
push dword [esp + 0x64]
call fcn.00508c00
add esp, 8
add esp, 0xfc
ret