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

Disassembly:
sub esp, 0x120
xor eax, eax
mov dword [esp + 0x94], 0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x130]
push edi
xor edi, edi
mov dword [esp + 0x88], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xec], eax
mov eax, dword [esi]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], edi
mov dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x20], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xb0], 1
mov dword [esp + 0x4c], eax
cmp dword [esi + 0x24], edi
jne 0x511c5c
mov ecx, dword [esp + 0x138]
push ecx
push esi
call fcn.0050dae0
mov ebx, eax
add esp, 8
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x511c5c
mov ecx, dword [ebx + 0x3c]
mov dword [esp + 0x54], 0xffff8000
test ecx, ecx
je 0x50f76c
mov eax, dword [esi]
xor ebp, ebp
mov dword [esp + 0x54], ebp
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x50f76c
jmp 0x50f760
lea eax, [eax + 0x10]
inc ebp
cmp dword [eax], ecx
jne 0x50f760
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x13c]
lea eax, [esp + 0xc0]
push eax
push ebp
push 0x81
push ebx
push esi
call fcn.0050f040
mov edx, dword [esp + 0x14c]
xor ecx, ecx
add esp, 0x14
mov dword [esp + 0x5c], eax
cmp byte [ebx + 0x2b], 2
sete cl
cmp dword [edx], 1
mov dword [esp + 0x68], ecx
jle 0x50f7ad
mov eax, dword [ebp]
jmp 0x50f7af
xor eax, eax
mov dword [esp + 0x30], eax
test ecx, ecx
jne 0x50f7ef
test eax, eax
jne 0x50f7ef
push str.UPDATE
push dword [esp + 0x150]
push dword [esp + 0x150]
push dword [esp + 0x14c]
push edx
push esi
call fcn.004ff2d0
add esp, 0x18
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], edi
jmp 0x50f812
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x140]
push ebx
push esi
mov dword [esp + 0x3c], eax
call fcn.0051ee90
add esp, 8
test eax, eax
jne 0x50fcf5
push dword [esp + 0xc0]
push ebx
push esi
call fcn.004fe620
add esp, 0xc
test eax, eax
jne 0x50fcf5
mov edi, dword [esi + 0x28]
mov ecx, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x9c], ecx
lea edx, [edi + 1]
mov dword [esi + 0x28], edx
test byte [ebx + 0x1c], 0x80
mov dword [esp + 0xa8], edx
jne 0x50f86a
mov dword [esp + 0x3c], eax
jmp 0x50f879
push ebx
call fcn.005075a0
add esp, 4
mov dword [esp + 0x3c], eax
mov ecx, edi
mov eax, dword [ebx + 8]
xor ebp, ebp
mov dword [esp + 0x64], ebp
test eax, eax
je 0x50f8a2
cmp dword [esp + 0x3c], eax
jne 0x50f88e
mov edi, edx
inc edx
inc ebp
mov dword [esi + 0x28], edx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x50f886
mov dword [esp + 0x14], edi
mov dword [esp + 0x64], ebp
mov eax, dword [esp + 0x150]
test eax, eax
je 0x50f8c1
mov edi, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x14], edi
mov dword [esp + 0xa8], eax
mov dword [esi + 0x28], ecx
mov ecx, dword [esp + 0x138]
push 0
mov dword [ecx + 0x34], edi
movsx eax, word [ebx + 0x22]
add eax, ebp
lea eax, [eax*4 + 6]
add eax, ebp
push eax
push dword [esp + 0x54]
call fcn.004e9850
mov edi, eax
add esp, 0xc
mov dword [esp + 0x2c], edi
test edi, edi
je 0x50fcee
movsx eax, word [ebx + 0x22]
lea eax, [edi + eax*4]
lea ecx, [eax + 4]
mov dword [esp + 0x7c], eax
lea eax, [ebp + 1]
push eax
lea ecx, [ecx + ebp*4]
push 1
push ecx
mov dword [esp + 0x8c], ecx
call sub.MSVCRT.dll_memset
mov eax, dword [esp + 0x8c]
add esp, 0xc
xor ecx, ecx
mov byte [eax + ebp + 1], 0
xor eax, eax
cmp ax, word [ebx + 0x22]
jge 0x50f944
mov dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [ebx + 0x22]
cmp ecx, eax
jl 0x50f934
xor eax, eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0xfc], eax
mov eax, dword [esi + 8]
mov dword [esp + 0xf4], esi
mov dword [esp + 0x10c], 0x200
mov dword [esp + 0x10], eax
test eax, eax
jne 0x50f9dd
cmp dword [esi + 0x74], eax
jne 0x50f9c8
mov eax, dword [esi]
test byte [eax + 0x50], 8
jne 0x50f9c8
mov byte [esi + 0x17], 1
push esi
call fcn.005137c0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x50fcee
mov ecx, dword [esp + 0x13c]
xor ebp, ebp
xor al, al
mov byte [esp + 0x43], 0
mov byte [esp + 0x1b], al
mov dword [esp + 0x60], ebp
cmp dword [ecx], ebp
jle 0x50fc6b
lea esi, [ecx + 8]
mov dword [esp + 0x44], esi
mov ecx, dword [esi + 4]
xor dl, dl
mov byte [esp + 0x3b], dl
test ecx, ecx
jne 0x50fa17
mov byte [esp + 0x3b], dl
jmp 0x50fa36
mov al, byte [ecx]
test al, al
je 0x50fa36
lea ecx, [ecx]
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x56afc0]
mov al, byte [ecx]
test al, al
jne 0x50fa20
mov byte [esp + 0x3b], dl
cmp dword [esp + 0x30], 0
jne 0x50fa57
push dword [esi]
lea eax, [esp + 0xf8]
push eax
call fcn.00508a60
add esp, 8
test eax, eax
jne 0x50fcea
movsx eax, word [ebx + 0x22]
xor edi, edi
mov dword [esp + 0x84], eax
test eax, eax
jle 0x50fb02
mov ebp, dword [ebx + 4]
xor ebx, ebx
mov al, byte [esp + 0x3b]
mov ecx, dword [esp + 0x84]
lea esp, [esp]
cmp byte [ebx + ebp + 0xa], al
jne 0x50faf6
mov esi, dword [esi + 4]
mov edx, dword [ebx + ebp]
sub esi, edx
mov edi, edi
movzx ecx, byte [edx]
movzx eax, byte [edx + esi]
cmp ecx, eax
jne 0x50fad2
test ecx, ecx
jne 0x50fae4
mov ebx, dword [esp + 0x1c]
movsx eax, word [ebx + 0x20]
cmp edi, eax
jne 0x50fb46
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x60]
mov byte [esp + 0x1b], 1
mov dword [esp + 0x6c], ebp
mov eax, dword [ebx]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x2c]
mov dword [eax + edi*4], ebp
jmp 0x50fb06
movzx eax, byte [eax + 0x56afc0]
movzx ecx, byte [ecx + 0x56afc0]
sub ecx, eax
jne 0x50fae7
inc edx
jmp 0x50fa90
mov al, byte [esp + 0x3b]
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x44]
inc edi
add ebx, 0x10
cmp edi, ecx
jl 0x50fa80
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x22]
cmp edi, eax
jl 0x50fbee
cmp dword [esp + 0x3c], 0
jne 0x50fd41
mov edi, dword [ebx + 4]
mov esi, str._ROWID_
mov edx, edi
sub esi, edi
lea ecx, [ecx]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x50fb91
test ecx, ecx
je 0x50fbce
inc edx
jmp 0x50fb30
cmp dword [esp + 0x3c], 0
je 0x50fb6e
mov eax, edi
add eax, eax
test byte [ebp + eax*8 + 0xe], 1
je 0x50fb6e
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x44]
mov byte [esp + 0x43], 1
mov dword [eax + edi*4], ebp
jmp 0x50fb06
mov eax, edi
add eax, eax
test byte [ebp + eax*8 + 0xe], 0x60
jne 0x50fcce
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x44]
mov dword [eax + edi*4], ebp
jmp 0x50fb06
movzx eax, byte [eax + 0x56afc0]
movzx ecx, byte [ecx + 0x56afc0]
sub ecx, eax
jne 0x50fba6
inc edx
jmp 0x50fb30
push str.ROWID
push edi
call fcn.0050e440
add esp, 8
test eax, eax
je 0x50fbce
push 0x573b24
push edi
call fcn.0050e440
add esp, 8
test eax, eax
jne 0x50fd41
mov eax, dword [ebx]
or edi, 0xffffffff
mov ebx, dword [esp + 0x1c]
mov edx, str.ROWID
mov byte [esp + 0x1b], 1
mov dword [esp + 0xb8], eax
mov dword [esp + 0x6c], ebp
jmp 0x50fc0b
test edi, edi
jns 0x50fbfd
mov ebx, dword [esp + 0x1c]
mov edx, str.ROWID
jmp 0x50fc0b
mov ebx, dword [esp + 0x1c]
mov ecx, edi
add ecx, ecx
mov eax, dword [ebx + 4]
mov edx, dword [eax + ecx*8]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
add ecx, ecx
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push edx
push dword [ebx]
push 0x17
push dword [esp + 0x144]
call fcn.004e03b0
add esp, 0x14
cmp eax, 1
je 0x511c8b
cmp eax, 2
jne 0x50fc48
mov eax, dword [esp + 0x2c]
mov dword [eax + edi*4], 0xffffffff
mov ecx, dword [esp + 0x13c]
inc ebp
mov esi, dword [esp + 0x44]
add esi, 0x14
mov dword [esp + 0x60], ebp
mov dword [esp + 0x44], esi
cmp ebp, dword [ecx]
jl 0x50fa04
mov al, byte [esp + 0x1b]
mov edx, dword [esp + 0x1c]
mov bl, byte [esp + 0x43]
add bl, al
mov byte [esp + 0x74], bl
test byte [edx + 0x1c], 0x60
je 0x50fe43
mov ebp, dword [esp + 0x2c]
xor eax, eax
xor ebx, ebx
xor esi, esi
cmp ax, word [edx + 0x22]
jge 0x50fe3f
xor edi, edi
lea esp, [esp]
cmp dword [ebp + esi*4], 0
jge 0x50fe27
mov eax, dword [edx + 4]
test byte [eax + edi + 0xe], 0x60
je 0x50fe27
movzx eax, word [eax + edi + 0xc]
test ax, ax
jne 0x50fd74
xor eax, eax
jmp 0x50fd98
mov eax, dword [ebx + 4]
add edi, edi
push dword [eax + edi*8]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x13c]
call fcn.004ebb90
add esp, 0xc
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x13c]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0xec]
test eax, eax
je 0x50fd15
mov ecx, dword [esp + 0xe4]
mov dword [eax + 0xf8], ecx
test edi, edi
je 0x511d2c
test esi, esi
je 0x511cd7
cmp dword [esi + 0x210], 0
je 0x511c9f
push edi
push esi
call fcn.004cd980
add esp, 8
jmp 0x511d2c
mov ebx, dword [esp + 0x134]
lea eax, [ebp*4]
add eax, ebp
mov ebp, dword [esp + 0x13c]
push dword [ebp + eax*4 + 0xc]
push str.no_such_column:__s
push ebx
call fcn.004ebb90
mov edi, dword [esp + 0x38]
add esp, 0xc
mov byte [ebx + 0x11], 1
jmp 0x50fcf5
cmp byte [edx + 0x2b], 0
je 0x50fd7e
xor eax, eax
jmp 0x50fd98
mov ecx, dword [edx + 0x34]
test ecx, ecx
jne 0x50fd89
xor eax, eax
jmp 0x50fd98
cmp dword [ecx], eax
jge 0x50fd91
xor eax, eax
jmp 0x50fd98
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 - 0xc]
xor ecx, ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], ecx
mov word [esp + 0xdc], cx
mov dword [esp + 0xcc], 0x4a7140
mov dword [esp + 0xe0], ebp
test eax, eax
je 0x50fe06
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.00532c40
mov cx, word [esp + 0xe4]
add esp, 8
mov edx, dword [esp + 0x1c]
cmp byte [esp + 0x1b], 0
jne 0x50fe15
mov eax, 0xfffd
and cx, ax
test cx, cx
je 0x50fe27
mov dword [ebp + esi*4], 0x1869f
mov ebx, 1
movsx eax, word [edx + 0x22]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x50fca0
test ebx, ebx
jne 0x50fc87
mov bl, byte [esp + 0x74]
cmp byte [edx + 0x2b], 1
jne 0x50fe51
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x50fe55
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x138]
mov edi, dword [esp + 0x134]
mov dword [ebp + 0x40], eax
movzx eax, bl
push eax
push dword [esp + 0x30]
mov dword [ebp + 0x44], ecx
push edx
push edi
mov dword [esp + 0x94], eax
call fcn.004f3860
add esp, 0x10
mov ebp, eax
cmp dword [esp + 0x144], 5
mov dword [esp + 0x60], ebp
jne 0x50fe9d
mov dword [esp + 0x90], 1
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov esi, dword [eax + 8]
test esi, esi
je 0x5100b8
cmp byte [esp + 0x74], 0
jne 0x510077
cmp ebp, 1
jg 0x510077
cmp esi, dword [esp + 0x3c]
je 0x510077
mov eax, dword [esi + 0x24]
test eax, eax
je 0x50ff64
xor ecx, ecx
push eax
mov dword [esp + 0xe0], ecx
lea eax, [esp + 0xcc]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], ecx
mov word [esp + 0xe0], cx
mov ecx, dword [esp + 0x30]
push eax
mov dword [esp + 0xd4], 0x4a7140
mov dword [esp + 0xe8], ecx
call fcn.00532c40
mov cx, word [esp + 0xe4]
add esp, 8
cmp byte [esp + 0x1b], 0
jne 0x50ff54
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x510077
xor eax, eax
xor ebp, ebp
xor edi, edi
cmp ax, word [esi + 0x32]
jae 0x51008a
xor ebx, ebx
jmp 0x50ff80
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x2c]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x50ff9e
cwde
xor ecx, ecx
cmp dword [edx + eax*4], ecx
setge cl
jmp 0x510026
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + ebx + 8]
xor eax, eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov word [esp + 0x128], ax
mov dword [esp + 0x118], 0x4a7140
mov dword [esp + 0x12c], edx
test ecx, ecx
je 0x51000f
push ecx
lea eax, [esp + 0x118]
push eax
call fcn.00532c40
mov ax, word [esp + 0x130]
add esp, 8
cmp byte [esp + 0x1b], 0
jne 0x51001e
mov ecx, 0xfffd
and ax, cx
xor ecx, ecx
test ax, ax
setne cl
test ecx, ecx
jne 0x510040
movzx eax, word [esi + 0x32]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x50ff80
mov ebx, dword [esp + 0x24]
jmp 0x51008a
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x24]
inc dword [edi + 0x2c]
movzx eax, word [esi + 0x34]
mov ebp, dword [edi + 0x2c]
add eax, ebp
cmp dword [esp + 0x144], 0xb
mov dword [edi + 0x2c], eax
jne 0x510086
cmp byte [esi + 0x36], 5
jne 0x510086
mov dword [esp + 0x90], 1
jmp 0x510086
inc dword [edi + 0x2c]
movzx eax, word [esi + 0x34]
mov ebp, dword [edi + 0x2c]
add eax, ebp
mov dword [edi + 0x2c], eax
test ebp, ebp
jne 0x510096
mov eax, dword [esp + 0x80]
mov byte [ebx + eax + 1], 0
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x134]
mov dword [eax + ebx*4], ebp
inc ebx
mov esi, dword [esi + 0x14]
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x24], ebx
test esi, esi
jne 0x50feb2
mov ecx, dword [esp + 0x7c]
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [ecx + ebx*4], eax
cmp dword [esp + 0x90], 0
je 0x5100e6
mov eax, dword [esp + 0x64]
inc eax
push eax
push 1
push dword [esp + 0x88]
call sub.MSVCRT.dll_memset
add esp, 0xc
cmp byte [edi + 0x12], 0
jne 0x5100f7
mov eax, dword [esp + 0x10]
or dword [eax + 0xa0], 0x10
cmp dword [esp + 0x5c], 0
jne 0x510106
test ebp, ebp
jne 0x510106
xor ebx, ebx
jmp 0x51010b
mov ebx, 1
mov esi, dword [edi + 0x74]
test esi, esi
jne 0x510114
mov esi, edi
mov ecx, dword [esp + 0x54]
mov edi, 1
mov eax, dword [esi + 0x54]
shl edi, cl
test edi, eax
jne 0x510139
or eax, edi
mov dword [esi + 0x54], eax
cmp ecx, 1
jne 0x510139
push esi
call fcn.005010b0
add esp, 4
or dword [esi + 0x50], edi
or byte [esi + 0x14], bl
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x134]
cmp byte [esi + 0x2b], 1
je 0x5101c6
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + ebx*4]
inc dword [edi + 0x2c]
cmp byte [esp + 0x43], 0
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x28], edx
jne 0x510180
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x510180
test ebp, ebp
je 0x510197
lea eax, [edx + 1]
mov dword [esp + 0xf0], eax
movsx eax, word [esi + 0x22]
add eax, edx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x5c]
cmp byte [esp + 0x74], 0
jne 0x5101a6
test eax, eax
jne 0x5101a6
test ebp, ebp
je 0x5101b0
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x50], eax
mov ecx, dword [edi + 0x2c]
lea eax, [ecx + 1]
mov dword [esp + 0x8c], eax
movsx eax, word [esi + 0x22]
add eax, ecx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x5101f0
mov eax, edi
mov dword [esp + 0xec], eax
mov eax, dword [edi + 0xf8]
mov dword [esp + 0xe4], eax
mov eax, dword [esi]
mov dword [edi + 0xf8], eax
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x30], 0
jne 0x51024d
test eax, eax
je 0x510231
push dword [esp + 0x14]
push dword [esp + 0x98]
push dword [esp + 0xa0]
push dword [esp + 0x40]
push esi
push edi
call fcn.00500480
add esp, 0x18
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
push dword [esp + 0x34]
lea eax, [esp + 0xf8]
push eax
call fcn.00508a60
add esp, 8
test eax, eax
jne 0x50fcea
cmp byte [esi + 0x2b], 1
jne 0x51028c
push dword [esp + 0x144]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x140]
push ebx
push dword [esp + 0x34]
push dword [esp + 0xc4]
push ebp
push esi
push dword [esp + 0x150]
push edi
call fcn.0052b3f0
mov edi, dword [esp + 0x4c]
add esp, 0x20
jmp 0x50fcf9
mov eax, dword [esp + 0x4c]
dec dword [edi + 0x38]
mov edi, dword [edi + 0x38]
mov dword [esp + 0x44], edi
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
mov dword [esp + 0x54], edi
or eax, ecx
mov ecx, dword [esp + 0x134]
je 0x51034a
cmp dword [ecx + 0x78], 0
jne 0x51034a
cmp byte [ecx + 0x12], 0
jne 0x51034a
cmp byte [ecx + 0x95], 0
jne 0x51034a
cmp dword [esp + 0x150], 0
mov ebp, dword [esp + 0x10]
jne 0x51034e
inc dword [ecx + 0x2c]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp + 0x74]
mov dword [esp + 0xc4], edx
cmp dword [ebp + 0x78], ecx
jg 0x51030e
push 0
push edx
push 0
push 0x47
push ebp
call fcn.004c7840
mov ecx, dword [esp + 0x148]
add esp, 0x14
jmp 0x51034e
mov ebx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [ebp + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x70]
mov dword [eax + ecx*4], 0x47
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
mov ecx, dword [esp + 0x134]
jmp 0x51034e
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x30], 0
jne 0x51042e
test byte [esi + 0x1c], 0x80
jne 0x51042e
mov ecx, dword [ebp + 0x74]
cmp dword [ebp + 0x78], ecx
jg 0x510382
push dword [esp + 0x28]
push dword [esp + 0x7c]
push 0
push 0x4a
push ebp
call fcn.004c7840
add esp, 0x14
jmp 0x5103b5
mov edx, dword [esp + 0x78]
lea eax, [ecx + 1]
mov dword [ebp + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x70]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x4a
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 + 0x134]
mov ecx, dword [edx + 0x28]
mov dword [esp + 0x20], ecx
lea eax, [ecx + 1]
mov dword [edx + 0x28], eax
mov esi, dword [ebp + 0x74]
mov dword [esp + 0x88], esi
cmp dword [ebp + 0x78], esi
jg 0x5103f6
push dword [esp + 0x78]
push 0
push ecx
push 0x74
push ebp
call fcn.004c7840
add esp, 0x14
mov dword [esp + 0x88], eax
jmp 0x510629
lea eax, [esi + 1]
mov dword [ebp + 0x74], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebp + 0x70]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x78]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x510630
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x51043c
movzx ebx, word [eax + 0x32]
jmp 0x51043e
xor ebx, ebx
mov eax, dword [ecx + 0x2c]
movsx edi, bx
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x30]
lea edx, [eax + 1]
inc ebx
add eax, edi
mov dword [esp + 0x58], edx
add eax, ebx
cmp dword [esp + 0x150], 0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov dword [ecx + 0x2c], eax
jne 0x5105ed
cmp dword [esp + 0x68], 0
je 0x510481
movsx eax, word [esi + 0x22]
jmp 0x510483
xor eax, eax
lea esi, [edi + eax]
mov eax, dword [ecx + 0x28]
add esi, dword [esp + 0x30]
mov dword [esp + 0x20], eax
inc eax
cmp dword [esp + 0x3c], 0
mov dword [ecx + 0x28], eax
je 0x5104ee
mov ecx, dword [ebp + 0x74]
dec edx
add edx, edi
cmp dword [ebp + 0x78], ecx
jg 0x5104bb
push edx
push dword [esp + 0x5c]
push 0
push 0x4a
push ebp
call fcn.004c7840
add esp, 0x14
jmp 0x5104ee
mov ebx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov dword [ebp + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp + 0x70]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x4a
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp + 0x74]
mov dword [esp + 0x88], edx
cmp dword [ebp + 0x78], edx
jg 0x510518
push 0
push esi
push dword [esp + 0x28]
push 0x74
push ebp
call fcn.004c7840
add esp, 0x14
mov dword [esp + 0x88], eax
jmp 0x510547
lea eax, [edx + 1]
mov dword [ebp + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebp + 0x70]
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x74
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 + 0x3c]
test eax, eax
je 0x510596
push eax
push dword [esp + 0x138]
call fcn.004fea90
mov edx, eax
add esp, 8
test edx, edx
je 0x510592
mov word [edx + 8], si
mov eax, dword [ebp]
cmp byte [eax + 0x57], 0
je 0x510580
push edx
push 0xfffffffffffffff7
push eax
call fcn.004b4610
add esp, 0xc
jmp 0x510592
mov eax, dword [ebp + 0x74]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x70]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x30], 0
je 0x510687
push dword [esp + 0x94]
mov ecx, dword [esp + 0x13c]
push dword [esp + 0x9c]
mov ebp, dword [esp + 0x28]
push dword [esp + 0x3c]
push ecx
push dword [esp + 0x14c]
push eax
push ebp
push dword [esp + 0x150]
call fcn.0052af20
mov ecx, dword [esp + 0x154]
add esp, 0x20
cmp dword [esp + 0x68], 0
mov edx, dword [esp + 0x58]
je 0x5105ed
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x30], 0
je 0x510625
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x5105fd
mov eax, ecx
mov ebp, dword [esp + 0xe4]
xor esi, esi
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0xe8]
mov byte [eax + 0x14], 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], edx
jmp 0x510a9e
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x134]
cmp dword [esp + 0x150], 0
je 0x510687
push 0x10
push edi
push dword [esp + 0x3c]
mov esi, 1
mov dword [esp + 0xc0], 0
push edx
mov dword [esp + 0x34], esi
call fcn.004ef900
mov edi, dword [esp + 0xf8]
add esp, 0x10
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0xb0], 0
mov dword [esp + 0x70], edi
mov dword [esp + 0xbc], ebp
jmp 0x51075d
mov ecx, dword [esp + 0x134]
mov eax, 4
cmp byte [ecx + 0x12], 0
jne 0x5106bd
cmp dword [esp + 0x5c], 0
jne 0x5106bd
cmp dword [esp + 0x60], 0
jne 0x5106bd
cmp byte [esp + 0x74], 0
jne 0x5106bd
cmp dword [esp + 0x90], 0
jne 0x5106bd
mov eax, 0xc
push dword [esp + 0xa8]
push eax
push 0
push 0
push 0
push dword [esp + 0x48]
push dword [esp + 0x150]
push ecx
call fcn.005215c0
add esp, 0x20
mov dword [esp + 0xb4], eax
test eax, eax
je 0x50fcea
movzx esi, byte [eax + 0x32]
mov edx, dword [eax + 0x34]
mov ebp, dword [eax + 0x18]
and edx, 1
mov edi, dword [eax + 0x1c]
mov dword [esp + 0xbc], ebp
mov dword [esp + 0x70], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0xb0], edx
cmp esi, 1
je 0x51075d
mov ecx, dword [esp + 0x134]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x510729
mov eax, ecx
mov byte [eax + 0x14], 1
cmp esi, 2
jne 0x51075d
test edi, edi
js 0x51075d
mov ecx, dword [esp + 0x14]
cmp edi, ecx
je 0x510761
mov edx, dword [esp + 0x80]
mov eax, edi
sub eax, dword [esp + 0x9c]
xor ecx, ecx
cmp byte [eax + edx], cl
setne cl
dec ecx
and esi, ecx
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test byte [eax + 0x1c], 0x80
jne 0x510892
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x510799
push 0
push dword [esp + 0x2c]
push dword [esp + 0x1c]
push 0x86
push edx
call fcn.004c7840
mov edx, dword [esp + 0x24]
add esp, 0x14
jmp 0x5107d3
mov ebp, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4 + 4], ebp
mov ebp, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], ebp
mov ebp, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
jne 0x510847
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x7c]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [ecx + ebx*4], eax
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x51080f
push dword [esp + 0x28]
push dword [esp + 0x7c]
push dword [esp + 0x28]
push 0x7f
push edx
call fcn.004c7840
add esp, 0x14
jmp 0x510a9e
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x510a9e
mov eax, dword [esp + 0x88]
test eax, eax
je 0x510a9e
mov edx, dword [edx]
cmp byte [edx + 0x57], 0
jne 0x510a9e
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x70]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.004b4610
add esp, 0xc
mov word [esi], 0xb6
mov dword [esi + 0x10], 0
jmp 0x510a9a
mov eax, dword [esp + 0xac]
xor esi, esi
movsx ebx, ax
test ebx, ebx
jle 0x5108e2
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
lea ebx, [ebx]
mov eax, dword [esp + 0x58]
add eax, esi
push eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push ecx
push edi
push ebp
call fcn.004ecd30
mov ecx, dword [esp + 0x28]
inc esi
add esp, 0x14
cmp esi, ebx
jl 0x5108b0
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x24]
test esi, esi
je 0x510940
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x51092c
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
cmp byte [edx + 0x57], 0
jne 0x51092c
mov eax, dword [eax + 0x70]
lea ecx, [ecx + ecx*4]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.004b4610
mov word [esi], 0xb6
add esp, 0xc
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x48], eax
jmp 0x510a9e
push dword [esp + 0x3c]
push dword [esp + 0x50]
call fcn.004fc9d0
mov ecx, dword [esp + 0x18]
add esp, 8
mov esi, eax
mov edx, dword [ecx + 0x74]
cmp dword [ecx + 0x78], edx
jg 0x510976
push dword [esp + 0x48]
push ebx
push dword [esp + 0x60]
push 0x60
push ecx
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x5109ad
mov edi, dword [esp + 0x58]
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x70]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
je 0x5109cb
cmp ebx, 0xfffffff4
je 0x510a17
push esi
push ebx
push eax
call fcn.004b4610
add esp, 0xc
jmp 0x510a17
test edx, edx
jns 0x5109d3
mov edx, dword [ecx + 0x74]
dec edx
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x70]
lea eax, [eax + ecx*4]
test ebx, ebx
jns 0x510a0b
cmp byte [eax + 1], 0
jne 0x510a0b
cmp ebx, 0xfffffffd
jne 0x5109f7
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
jmp 0x510a17
test esi, esi
je 0x510a17
mov dword [eax + 0x10], esi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x510a17
inc dword [esi + 0xc]
jmp 0x510a17
push ebx
push esi
push eax
push edx
call fcn.0052c640
add esp, 0x10
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x74]
cmp dword [eax + 0x78], edx
jg 0x510a45
push dword [esp + 0x58]
push dword [esp + 0x4c]
push dword [esp + 0x28]
push 0x89
push eax
call fcn.004c7840
mov esi, dword [esp + 0x24]
add esp, 0x14
mov edx, eax
jmp 0x510a83
mov esi, dword [esp + 0x10]
lea eax, [edx + 1]
mov ebp, dword [esp + 0x20]
lea ecx, [edx + edx*4]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], ebp
mov ebp, dword [esp + 0x48]
mov dword [eax + ecx*4 + 8], ebp
mov ebp, dword [esp + 0x58]
mov dword [eax + ecx*4 + 0xc], ebp
mov ebp, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0x89
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x510a9a
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], ebx
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x150], 0
jne 0x5110bb
cmp dword [esp + 0x30], 0
jne 0x510ac7
cmp esi, 2
je 0x510ac7
push dword [esp + 0xb4]
call fcn.00524170
add esp, 4
cmp dword [esp + 0x68], 0
mov ebx, dword [esp + 0x24]
jne 0x510bd1
xor esi, esi
test ebx, ebx
je 0x510b02
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x80]
test ebp, ebp
js 0x510af6
mov eax, ebp
sub eax, edx
mov byte [eax + ecx], 0
test edi, edi
js 0x510b02
mov eax, edi
sub eax, edx
mov byte [eax + ecx], 0
cmp ebx, 2
jne 0x510b6c
mov ecx, dword [esp + 0x64]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x510b6c
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x74]
cmp dword [edx + 0x78], esi
jg 0x510b39
push 0
push 0
push 0
push 0x11
push edx
call fcn.004c7840
add esp, 0x14
mov esi, eax
jmp 0x510b6c
lea eax, [esi + 1]
mov dword [edx + 0x74], eax
lea ecx, [esi + esi*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push 0
push dword [esp + 0x88]
push dword [esp + 0xa8]
push 0
push 0x70
push dword [esp + 0x34]
push dword [esp + 0x150]
call fcn.00500e90
add esp, 0x20
test esi, esi
je 0x510bd1
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x74]
lea eax, [edx - 1]
cmp esi, eax
jne 0x510bac
mov dword [ecx + 0x74], eax
jmp 0x510bd1
test esi, esi
jns 0x510bb2
mov esi, eax
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
je 0x510bc1
mov eax, 0x610b1c
jmp 0x510bce
mov eax, dword [esp + 0x10]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x70]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
test ebx, ebx
je 0x510d22
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x44]
cmp ebp, eax
je 0x510c07
cmp edi, eax
mov edi, dword [esp + 0x48]
je 0x510c0b
push dword [esp + 0xa0]
push edi
push esi
push eax
push 0x1e
push dword [esp + 0x24]
call fcn.00512ed0
add esp, 0x18
jmp 0x510c0b
mov edi, dword [esp + 0x48]
cmp ebx, 1
je 0x510c21
mov eax, dword [esp + 0x134]
dec dword [eax + 0x38]
mov ebp, dword [eax + 0x38]
mov dword [esp + 0x54], ebp
cmp dword [esp + 0x3c], 0
mov edx, edi
jne 0x510c2e
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], ecx
jg 0x510cf2
push 0
push esi
push edx
push 0x32
push ebx
call fcn.004c7840
add esp, 0x14
mov edi, dword [esp + 0x134]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
cmp byte [esp + 0x1b], 0
je 0x51118f
test eax, eax
jne 0x51110d
cmp dword [edi + 8], eax
je 0x510ccd
mov ebp, dword [esp + 0x50]
push ebp
mov ebp, dword [esp + 0xbc]
push ebp
push edi
call fcn.004edf60
mov edx, dword [esp + 0x5c]
mov esi, eax
add esp, 0xc
cmp esi, edx
je 0x510cd1
test ebp, ebp
je 0x510ca3
test dword [ebp + 4], 0x200000
mov al, 0x4f
jne 0x510ca5
mov al, 0x50
mov edx, dword [edi + 8]
movzx ebx, al
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x5110cd
mov ebp, dword [esp + 0x50]
push 0
push ebp
push esi
push ebx
push edx
call fcn.004c7840
mov ebx, dword [esp + 0x24]
add esp, 0x14
mov edx, dword [esp + 0x50]
mov ecx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], ecx
jg 0x511160
push 0
push 0
push edx
push 0xf
push ebx
call fcn.004c7840
add esp, 0x14
jmp 0x51118f
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x32
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
jmp 0x510c4d
cmp dword [esp + 0x3c], 0
jne 0x510e51
cmp dword [esp + 0x30], 0
jne 0x510e51
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
mov ecx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], ecx
jg 0x510d5d
push 0
push esi
mov esi, dword [esp + 0x28]
push esi
push 0x26
push ebx
call fcn.004c7840
add esp, 0x14
jmp 0x510d8e
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4 + 8], esi
mov esi, edx
mov dword [eax + ecx*4], 0x26
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x134]
dec dword [edi + 0x38]
mov ecx, dword [ebx + 0x74]
mov ebp, dword [edi + 0x38]
mov dword [esp + 0x54], ebp
mov dword [esp + 0xa4], ecx
cmp dword [ebx + 0x78], ecx
jg 0x510dd0
push 0
push dword [esp + 0x2c]
push esi
push 0x86
push ebx
call fcn.004c7840
mov edx, dword [esp + 0x3c]
add esp, 0x14
mov dword [esp + 0xa4], eax
jmp 0x510dff
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], ecx
jg 0x510e1d
push edx
push ebp
push dword [esp + 0x1c]
push 0x21
push ebx
call fcn.004c7840
add esp, 0x14
jmp 0x510c58
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x510c58
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x44]
dec dword [edi + 0x38]
mov ecx, dword [ebx + 0x74]
mov ebp, dword [edi + 0x38]
mov dword [esp + 0x54], ebp
cmp dword [ebx + 0x78], ecx
jg 0x510e8a
push 0
push esi
push dword [esp + 0x28]
push 0x26
push ebx
call fcn.004c7840
mov edx, dword [esp + 0x34]
add esp, 0x14
jmp 0x510eb9
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x26
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 + 0x30]
mov ecx, dword [ebx + 0x74]
mov dword [esp + 0xa4], ecx
test eax, eax
je 0x511003
cmp dword [esp + 0x68], 0
jne 0x5110c4
cmp dword [esp + 0x3c], 0
je 0x510f6d
mov eax, dword [esp + 0xac]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x510f53
mov ebp, dword [esp + 0x58]
lea esp, [esp]
mov ecx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], ecx
jg 0x510f1f
lea eax, [esi + ebp]
push eax
push esi
push edx
push 0x5d
push ebx
call fcn.004c7840
mov edx, dword [esp + 0x34]
add esp, 0x14
jmp 0x510f4a
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
lea ecx, [eax + ecx*4]
lea eax, [esi + ebp]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], eax
inc esi
cmp esi, edi
jl 0x510f00
mov ebp, dword [esp + 0x54]
push edi
push dword [esp + 0x5c]
push ebp
push dword [esp + 0x20]
push 0x1e
push ebx
call fcn.00512ed0
add esp, 0x18
jmp 0x510c4d
mov esi, dword [esp + 0x28]
cmp dword [ebx + 0x78], ecx
jg 0x510f8a
push 0
push esi
push edx
push 0x86
push ebx
call fcn.004c7840
add esp, 0x14
jmp 0x510fb5
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x86
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 ecx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], ecx
jg 0x510fd3
push esi
push ebp
push dword [esp + 0x1c]
push 0x21
push ebx
call fcn.004c7840
add esp, 0x14
jmp 0x510c54
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x510c54
mov esi, dword [esp + 0x48]
cmp dword [ebx + 0x78], ecx
jg 0x511020
push 0
push esi
push edx
push 0x85
push ebx
call fcn.004c7840
add esp, 0x14
jmp 0x51104b
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x85
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 edx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], edx
jg 0x511068
push esi
push ebp
push dword [esp + 0x1c]
push 0x1e
push ebx
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x511097
mov esi, dword [esp + 0x14]
lea eax, [edx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4 + 8], ebp
mov ebp, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
jne 0x510c54
mov eax, dword [ebx + 0x70]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x510c54
mov ebx, dword [esp + 0x10]
jmp 0x510c4d
mov esi, dword [esp + 0x20]
jmp 0x510c5c
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x50]
mov byte [eax + ecx*4], bl
mov ebx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
jmp 0x510cd1
mov ecx, dword [ebx + 0x74]
mov edx, dword [esp + 0x6c]
cmp dword [ebx + 0x78], ecx
jg 0x511130
mov ebp, dword [esp + 0x50]
push ebp
push edx
push esi
push 0x5d
push ebx
call fcn.004c7840
add esp, 0x14
jmp 0x510ccd
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x510cd1
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x43], 0
jne 0x511244
cmp dword [esp + 0x60], 0
jne 0x51124f
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x5113f5
xor ebx, ebx
push dword [esp + 0x144]
push dword [esp + 0x20]
push 3
push 0
push dword [esp + 0x14c]
push dword [esp + 0x70]
push edi
call fcn.0050eac0
mov ecx, dword [esp + 0x38]
or ebx, eax
xor eax, eax
mov dword [esp + 0x80], ebx
add esp, 0x1c
xor esi, esi
cmp ax, word [ecx + 0x22]
jge 0x51130f
xor ebp, ebp
mov edi, ebx
test byte [ecx + 0x1c], 0x20
mov ebx, dword [ecx + 4]
je 0x51126c
movzx eax, si
test ax, ax
js 0x51126c
movsx ecx, ax
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x511222
lea eax, [ebx + 0xe]
mov edi, ecx
test byte [eax], 0x20
jne 0x51121c
inc edx
add eax, 0x10
dec ecx
jne 0x511216
mov eax, edi
add eax, eax
test byte [ebx + eax*8 + 0xe], 0x20
je 0x511263
mov eax, dword [esp + 0x1c]
mov ax, word [eax + 0x24]
sub ax, dx
add ax, di
mov edi, dword [esp + 0x64]
movzx eax, ax
jmp 0x51126f
cmp dword [esp + 0x60], 0
je 0x5111b1
push dword [esp + 0x1c]
push edi
call fcn.004f3750
add esp, 8
mov ebx, eax
jmp 0x5111b3
mov edi, dword [esp + 0x64]
movzx eax, dx
jmp 0x51126f
movzx eax, si
movsx edx, ax
add edx, dword [esp + 0xf0]
cmp edi, 0xffffffff
je 0x5112e5
cmp esi, 0x20
jge 0x511290
mov eax, 1
mov ecx, esi
shl eax, cl
test edi, eax
jne 0x5112e5
movzx eax, word [ebx + ebp + 0xe]
test al, 1
jne 0x5112e5
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x74]
cmp dword [ebx + 0x78], ecx
jg 0x5112b4
push 0
push edx
push 0
push 0x4a
push ebx
call fcn.004c7840
jmp 0x5112f8
lea eax, [ecx + 1]
mov dword [ebx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0x4a
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 0x5112fb
push edx
push esi
push dword [esp + 0x1c]
push dword [esp + 0x28]
push dword [esp + 0x20]
call fcn.004ecd30
add esp, 0x14
mov ecx, dword [esp + 0x1c]
inc esi
add ebp, 0x10
movsx eax, word [ecx + 0x22]
cmp esi, eax
jl 0x5111f5
cmp byte [esp + 0x1b], 0
mov edi, dword [esp + 0x10]
jne 0x511343
cmp dword [esp + 0x3c], 0
jne 0x511343
mov ecx, dword [edi + 0x74]
mov ebp, dword [esp + 0x50]
cmp dword [edi + 0x78], ecx
jg 0x5113c1
push 0
push ebp
push dword [esp + 0x30]
push 0x4f
push edi
call fcn.004c7840
add esp, 0x14
mov eax, dword [esp + 0x5c]
push dword [esp + 0x144]
push dword [esp + 0x20]
push 1
push 1
push dword [esp + 0x14c]
push eax
push dword [esp + 0x14c]
call fcn.0050eac0
mov edx, dword [esp + 0xa8]
mov ebp, eax
mov eax, dword [esp + 0x38]
xor ebx, ebx
add esp, 0x1c
mov dword [esp + 0x64], ebp
mov dword [esp + 0x70], ebx
mov esi, edx
movsx ecx, word [eax + 0x22]
test ecx, ecx
jle 0x511527
xor edx, edx
mov dword [esp + 0x6c], edx
movsx eax, word [eax + 0x20]
cmp ebx, eax
jne 0x5113fe
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x51163e
push 0
push esi
push 0
push 0x4a
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x5114fd
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x511343
mov edi, dword [esp + 0x10]
jmp 0x511347
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0xe]
test al, 0x60
je 0x51141c
test al, 0x20
je 0x5114fd
dec esi
jmp 0x5114fd
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + ebx*4]
test eax, eax
js 0x511602
cmp dword [esp + 0x30], 0
je 0x511491
cmp dword [esp + 0x68], 0
jne 0x511443
mov ecx, dword [esp + 0xac]
movsx ecx, cx
lea edx, [ecx + eax]
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x511464
push esi
push edx
push dword [esp + 0x28]
push 0x5d
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x5114fd
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x5d
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 0x5114fd
mov ecx, dword [esp + 0x13c]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*4 + 8]
mov eax, dword [esp + 0x134]
cmp dword [eax + 8], 0
je 0x5114fd
push esi
push edi
push eax
call fcn.004edf60
mov ebp, eax
add esp, 0xc
cmp ebp, esi
je 0x5114f9
test edi, edi
je 0x5114cc
test dword [edi + 4], 0x200000
mov al, 0x4f
jne 0x5114ce
mov al, 0x50
movzx ebx, al
mov eax, dword [esp + 0x134]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x5115d3
push 0
push esi
push ebp
push ebx
push edx
call fcn.004c7840
add esp, 0x14
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
inc ebx
add dword [esp + 0x6c], 0x10
inc esi
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x10]
movsx ecx, word [eax + 0x22]
mov dword [esp + 0x70], ebx
cmp ebx, ecx
jl 0x511398
mov edx, dword [esp + 0x8c]
test byte [eax + 0x1c], 0x60
mov esi, dword [esp + 0x134]
je 0x511543
push eax
push edx
push esi
call fcn.004e7690
mov eax, dword [esp + 0x28]
add esp, 0xc
test byte [esp + 0xc0], 1
je 0x5117be
push dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
push eax
push edi
call fcn.0050e5c0
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x150]
push ebx
push ebp
push dword [esp + 0x3c]
push dword [esp + 0x34]
push 1
push dword [esp + 0x15c]
push 0x81
push dword [esp + 0x84]
push esi
call fcn.004e6600
add esp, 0x30
cmp dword [esp + 0x68], 0
jne 0x511ac3
cmp dword [esp + 0x3c], 0
je 0x5116e4
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x511695
push dword [esp + 0x48]
push ebx
push dword [esp + 0x1c]
push 0x1e
push edi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x5116c4
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
xor edx, edx
mov byte [eax + ecx*4], bl
mov word [eax + ecx*4 + 2], dx
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
mov byte [eax + ecx*4 + 1], dl
jmp 0x5114f5
test dword [esp + 0xc0], 1
je 0x511672
cmp ebx, 0x1f
jg 0x511672
mov eax, 1
mov ecx, ebx
shl eax, cl
test ebp, eax
jne 0x511672
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x51163e
push 0
push esi
push 0
push 0x4a
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x5114fd
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x4a
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 0x5114fd
push esi
push ebx
push dword [esp + 0x1c]
push dword [esp + 0x28]
push edi
call fcn.004ecd30
add esp, 0x14
mov dword [esp + 0xb0], 0
jmp 0x5114fd
mov esi, dword [esp + 0x14]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x511731
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xa0]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x511731
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x511702
push dword [esp + 0x28]
push ebx
push dword [esp + 0x1c]
push 0x21
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x511731
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x8c]
xor esi, esi
mov edi, eax
cmp dx, word [ecx + 0x22]
mov edx, dword [esp + 0x14]
jge 0x5117a5
xor ebx, ebx
mov edi, edi
mov eax, dword [ecx + 4]
movzx eax, word [eax + ebx + 0xe]
test al, 0x60
je 0x511763
test al, 0x20
je 0x511789
dec edi
jmp 0x511789
mov eax, dword [esp + 0x2c]
cmp dword [eax + esi*4], 0
jge 0x511789
movsx eax, word [ecx + 0x20]
cmp esi, eax
je 0x511789
push edi
push esi
push edx
push ecx
push dword [esp + 0x20]
call fcn.004ecd30
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 0x511750
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x8c]
test byte [ecx + 0x1c], 0x60
je 0x5117d8
push ecx
push eax
push dword [esp + 0x13c]
call fcn.004e7690
add esp, 0xc
jmp 0x5117d4
cmp dword [esp + 0x68], 0
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x144]
jne 0x511ab9
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x90]
push 0
push dword [esp + 0x30]
push eax
push ebx
push ebp
push dword [esp + 0x88]
mov ebp, dword [esp + 0x2c]
push esi
push dword [esp + 0x6c]
push dword [esp + 0xc8]
push ebp
push dword [esp + 0xa4]
push ecx
push dword [esp + 0x164]
call fcn.004f8860
add esp, 0x34
cmp dword [esp + 0x90], 0
jne 0x511830
cmp byte [esp + 0x74], 0
je 0x5118e4
cmp dword [esp + 0x3c], 0
mov edi, dword [esp + 0x10]
je 0x5118a3
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x511858
push dword [esp + 0x48]
push ebx
push ebp
push 0x1e
push edi
call fcn.004c7840
add esp, 0x14
mov edx, eax
jmp 0x511883
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], ebp
mov ebp, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x5118e8
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xa0]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x5118e8
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x5118bb
push esi
push ebx
push ebp
push 0x21
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x5118e8
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5118e8
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x84]
test ebp, ebp
je 0x511915
push esi
push dword [esp + 0x30]
push 0
push dword [esp + 0x34]
push dword [esp + 0x2c]
push dword [esp + 0x148]
call fcn.004f2850
add esp, 0x18
push 0xffffffffffffffff
push dword [esp + 0x80]
push dword [esp + 0xb0]
push dword [esp + 0x20]
push dword [esp + 0x2c]
push dword [esp + 0x148]
call fcn.004fb310
add esp, 0x18
cmp dword [esp + 0xb0], 0
je 0x511964
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x511995
push 0
push 0
push dword [esp + 0x1c]
push 0x8e
push edi
call fcn.004c7840
add esp, 0x14
mov edx, dword [esp + 0x14]
cmp ebp, 1
jg 0x511978
cmp byte [esp + 0x74], 0
je 0x5119fd
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x5119ca
push 0
push 0
push edx
push 0x81
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x5119fd
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x8e
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 0x511968
mov ebx, dword [esp + 0x54]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x81
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test ebp, ebp
je 0x511a1f
push esi
push dword [esp + 0x30]
push dword [esp + 0x58]
push 0
push dword [esp + 0x2c]
push dword [esp + 0x148]
call fcn.004f2850
add esp, 0x18
mov esi, dword [esp + 0x24]
xor eax, eax
cmp esi, 2
push 0
setne al
push 0
dec eax
and eax, 2
or eax, 4
push eax
push dword [esp + 0x88]
push dword [esp + 0x60]
push dword [esp + 0xbc]
push dword [esp + 0x2c]
push dword [esp + 0x38]
push dword [esp + 0x154]
call fcn.004e74a0
add esp, 0x24
test ebp, ebp
je 0x511a8d
push dword [esp + 0x84]
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x148]
push dword [esp + 0x2c]
push dword [esp + 0x148]
call fcn.004f27c0
add esp, 0x18
mov ebp, dword [esp + 0x144]
mov edx, dword [esp + 0xc4]
test edx, edx
je 0x511afc
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x511ac9
push 0
push 1
push edx
push 0x55
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x511afc
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
jmp 0x511a94
mov esi, dword [esp + 0x24]
jmp 0x511a94
mov ebx, dword [esp + 0x54]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push ebx
push ebp
push dword [esp + 0x30]
mov ebp, dword [esp + 0x140]
push dword [esp + 0x28]
push 2
push dword [esp + 0x150]
push 0x81
push dword [esp + 0x78]
push ebp
call fcn.004e6600
add esp, 0x24
cmp esi, 1
je 0x511bf0
mov ecx, dword [edi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
cmp esi, 2
jne 0x511b7c
add eax, dword [ecx + 0x38]
jns 0x511b62
push ebx
push edi
push ecx
call fcn.004d98e0
add esp, 0xc
push dword [esp + 0xb4]
call fcn.00524170
add esp, 4
jmp 0x511bf0
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x74]
push dword [esp + 0xb4]
mov dword [ecx + ebx*4], eax
call fcn.00524170
add esp, 4
jmp 0x511bf0
add eax, dword [ecx + 0x38]
jns 0x511b8e
push ebx
push edi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x511b97
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x74]
mov dword [ecx + ebx*4], eax
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x511bba
mov edx, dword [esp + 0xa4]
push 0
push edx
push dword [esp + 0x28]
push 5
push edi
call fcn.004c7840
add esp, 0x14
jmp 0x511bf0
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xa4]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x44]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x511c0e
push edx
push edi
push ecx
call fcn.004d98e0
add esp, 0xc
jmp 0x511c17
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x74]
mov dword [ecx + edx*4], eax
cmp byte [ebp + 0x12], 0
jne 0x511c3c
cmp dword [ebp + 0x78], 0
jne 0x511c3c
cmp dword [esp + 0x150], 0
jne 0x511c3c
cmp dword [ebp + 0x70], 0
je 0x511c3c
push ebp
call fcn.004a2b30
add esp, 4
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x50fcea
push str.rows_updated
push eax
push edi
call fcn.004e5d90
jmp 0x50fce7
mov eax, dword [esp + 0x14c]
mov ebx, dword [esp + 0x140]
mov ebp, dword [esp + 0x13c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x98], eax
jmp 0x50fcf9
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x13c]
mov ebx, dword [esp + 0x34]
jmp 0x50fcfd
cmp edi, dword [esi + 0x164]
jae 0x511cd7
cmp edi, dword [esi + 0x15c]
jb 0x511cbf
mov eax, dword [esi + 0x158]
mov dword [edi], eax
mov dword [esi + 0x158], edi
jmp 0x511d2c
cmp edi, dword [esi + 0x160]
jb 0x511cd7
mov eax, dword [esi + 0x150]
mov dword [edi], eax
mov dword [esi + 0x150], edi
jmp 0x511d2c
cmp dword [0x606158], 0
je 0x511d22
mov eax, dword [0x6107f0]
test eax, eax
je 0x511cf3
push eax
call dword [0x6061a8]
add esp, 4
push edi
call dword [0x606184]
sub dword [0x610778], eax
dec dword [0x61079c]
push edi
call dword [0x60617c]
mov eax, dword [0x6107f0]
add esp, 8
test eax, eax
je 0x511d2c
push eax
call dword [0x6061b0]
jmp 0x511d29
push edi
call dword [0x60617c]
add esp, 4
push dword [esp + 0x138]
push esi
call fcn.0050d420
add esp, 8
test ebp, ebp
je 0x511d4a
push ebp
push esi
call fcn.004b0f30
add esp, 8
test ebx, ebx
je 0x511d58
push ebx
push esi
call fcn.004ef5e0
add esp, 8
mov eax, dword [esp + 0x98]
test eax, eax
je 0x511d6d
push eax
push esi
call fcn.004b0f30
add esp, 8
mov eax, dword [esp + 0x94]
test eax, eax
je 0x511d82
push eax
push esi
call fcn.004ef5e0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret