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

Disassembly:
sub esp, 0xc4
push ebx
mov ebx, dword [esp + 0xcc]
mov eax, dword [ebx]
push esi
push edi
xor edi, edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0x64], eax
cmp dword [ebx + 0x24], edi
jne 0x5196fa
cmp byte [eax + 0x49], 0
jne 0x5196fa
mov ecx, dword [esp + 0xd8]
push ebp
mov eax, ebx
call fcn.004ef550
mov ebp, eax
mov dword [esp + 0x14], ebp
cmp ebp, edi
je 0x5196f9
mov ecx, dword [ebp + 0x48]
mov dword [esp + 0x34], 0xfff0bdc0
cmp ecx, edi
je 0x51819e
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
xor edx, edx
mov dword [esp + 0x34], edx
cmp dword [eax + 0xc], ecx
je 0x51819e
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
add eax, 0xc
add eax, 0x10
inc edx
cmp dword [eax], ecx
jne 0x518192
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xe0]
lea ecx, [esp + 0x98]
push ecx
push edx
push 0x76
mov edx, ebp
mov eax, ebx
call fcn.004b8ab0
mov dword [esp + 0x54], eax
xor eax, eax
cmp dword [ebp + 0xc], edi
push ebp
setne al
mov dword [esp + 0x5c], eax
mov eax, ebx
call fcn.004fa4a0
add esp, 0x10
test eax, eax
jne 0x5196f9
mov ecx, dword [esp + 0x98]
push ecx
mov ecx, ebp
mov eax, ebx
call fcn.004d9190
add esp, 4
test eax, eax
jne 0x5196f9
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], edx
inc edx
mov dword [ebx + 0x28], edx
test byte [ebp + 0x24], 0x20
mov dword [esp + 0x7c], edx
jne 0x518217
mov dword [esp + 0x30], edi
jmp 0x518222
mov eax, ebp
call fcn.004b6f90
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x88], esi
cmp eax, edi
je 0x51824f
cmp dword [esp + 0x30], eax
jne 0x51823c
mov dword [esp + 0x18], edx
inc edx
mov dword [ebx + 0x28], edx
mov eax, dword [eax + 0x14]
inc esi
cmp eax, edi
jne 0x518232
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0xf4]
cmp eax, edi
je 0x51826f
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x7c], eax
mov dword [ebx + 0x28], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xdc]
mov dword [eax + 0x34], edx
movsx ecx, word [ebp + 0x2a]
mov eax, dword [esp + 0x68]
add ecx, esi
lea edx, [esi + ecx*4 + 2]
push edi
push edx
call fcn.004bbd30
add esp, 8
mov dword [esp + 0x20], eax
cmp eax, edi
je 0x5196f9
movsx eax, word [ebp + 0x2a]
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*4]
lea ecx, [eax + esi*4]
mov dword [esp + 0x90], eax
lea eax, [esi + 1]
push eax
push 1
push ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x44], eax
call fcn.00585e50
mov edx, dword [esp + 0x70]
xor ecx, ecx
add esp, 0xc
mov byte [edx + esi + 1], 0
xor eax, eax
cmp cx, word [ebp + 0x2a]
jge 0x5182f4
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax*4], 0xffffffff
movsx edx, word [ebp + 0x2a]
inc eax
cmp eax, edx
jl 0x5182e4
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xe0]
cmp dword [eax], edi
mov edx, 0x200
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xbc], ecx
mov word [esp + 0xcc], dx
mov byte [esp + 0x1f], 0
mov byte [esp + 0x13], 0
mov dword [esp + 0x5c], edi
jle 0x5184ee
add eax, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push ecx
lea edi, [esp + 0xb8]
call fcn.004eddf0
add esp, 4
test eax, eax
jne 0x5196f9
movsx eax, word [ebp + 0x2a]
xor esi, esi
test eax, eax
jle 0x51841c
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov edi, dword [ebp + 4]
mov dword [esp + 0x78], eax
jmp 0x5183c0
mov eax, dword [esp + 0x78]
mov ecx, dword [edi]
call fcn.004acfb0
test eax, eax
je 0x5183dd
movsx eax, word [ebp + 0x2a]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x5183c0
jmp 0x51841c
movsx ecx, word [ebp + 0x28]
cmp esi, ecx
jne 0x5183f6
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov byte [esp + 0x13], 1
mov dword [esp + 0x50], eax
jmp 0x518411
cmp dword [esp + 0x30], 0
je 0x518411
mov eax, dword [ebp + 4]
mov ecx, esi
shl ecx, 4
test byte [ecx + eax + 0xf], 1
je 0x518411
mov byte [esp + 0x1f], 1
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], edx
movsx ecx, word [ebp + 0x2a]
cmp esi, ecx
jl 0x51847f
cmp dword [esp + 0x30], 0
jne 0x518509
mov edi, dword [esp + 0x2c]
mov esi, dword [edi + 4]
mov eax, str._ROWID_
mov ecx, esi
call fcn.004acfb0
test eax, eax
je 0x51846a
mov eax, str.ROWID
mov ecx, esi
call fcn.004acfb0
test eax, eax
je 0x51846a
mov eax, 0x5f03b0
mov ecx, esi
call fcn.004acfb0
test eax, eax
jne 0x518509
mov edx, dword [edi]
or esi, 0xffffffff
mov byte [esp + 0x13], 1
mov dword [esp + 0x50], edx
mov eax, str.ROWID
jmp 0x518495
test esi, esi
jge 0x51848a
mov eax, str.ROWID
jmp 0x518495
mov ecx, dword [ebp + 4]
mov eax, esi
shl eax, 4
mov eax, dword [eax + ecx]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x10]
shl edx, 4
mov edx, dword [edx + ecx]
push edx
push eax
mov eax, dword [ebp]
push eax
push 0x17
mov eax, ebx
call fcn.004d7c90
add esp, 0x10
cmp eax, 1
je 0x5196f9
cmp eax, 2
jne 0x5184d1
mov ecx, dword [esp + 0x20]
mov dword [ecx + esi*4], 0xffffffff
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0xe0]
add dword [esp + 0x2c], 0x18
inc eax
cmp eax, dword [edx]
mov dword [esp + 0x5c], eax
jl 0x518382
mov al, byte [esp + 0x1f]
add al, byte [esp + 0x13]
cmp dword [ebp + 0x38], 0
mov byte [esp + 0x58], al
je 0x518534
mov eax, 0xffffffff
or ecx, eax
jmp 0x518538
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xe0]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 8]
push edx
push str.no_such_column:__s
mov esi, ebx
call fcn.004d3340
add esp, 8
mov byte [ebx + 0x11], 1
jmp 0x5196f9
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0xdc]
mov dword [edx + 0x40], eax
movzx eax, byte [esp + 0x58]
push eax
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
push ebp
mov eax, ebx
call fcn.004c2370
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
add esp, 8
mov dword [esp + 0x24], 0
test eax, eax
je 0x518631
cmp byte [esp + 0x58], 0
jne 0x5185f3
cmp dword [esp + 0x40], 1
jg 0x5185f3
cmp dword [eax + 0x24], 0
jne 0x5185f3
cmp eax, dword [esp + 0x30]
je 0x5185f3
movzx edx, word [eax + 0x32]
xor esi, esi
xor ecx, ecx
test edx, edx
jle 0x518606
mov ebp, dword [eax + 4]
mov edi, dword [esp + 0x20]
movzx edx, word [ebp]
test dx, dx
jl 0x5185c2
movsx edx, dx
cmp dword [edi + edx*4], 0
jge 0x5185c2
movzx edx, word [eax + 0x32]
inc ecx
add ebp, 2
cmp ecx, edx
jl 0x5185a2
jmp 0x518606
mov edx, 1
add dword [ebx + 0x2c], edx
movzx ecx, word [eax + 0x34]
mov esi, dword [ebx + 0x2c]
add ecx, esi
mov dword [ebx + 0x2c], ecx
mov ecx, dword [esp + 0xe8]
cmp ecx, 5
je 0x5185ed
cmp ecx, 0xb
jne 0x518602
cmp byte [eax + 0x36], 5
jne 0x518602
mov dword [esp + 0x6c], edx
jmp 0x518602
inc dword [ebx + 0x2c]
movzx edx, word [eax + 0x34]
mov esi, dword [ebx + 0x2c]
add edx, esi
mov dword [ebx + 0x2c], edx
test esi, esi
jne 0x518613
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x24]
mov byte [edx + ecx + 1], 0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x90]
mov dword [edx + ecx*4], esi
mov eax, dword [eax + 0x14]
inc ecx
mov dword [esp + 0x24], ecx
test eax, eax
jne 0x518575
cmp dword [esp + 0x6c], 0
je 0x51864c
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x64]
push eax
push 1
push ecx
call fcn.00585e50
add esp, 0xc
mov ebp, dword [ebx + 8]
test ebp, ebp
jne 0x518677
cmp dword [ebx + 0x74], ebp
jne 0x518664
mov edx, dword [ebx]
test byte [edx + 0x44], 8
jne 0x518664
mov byte [ebx + 0x17], 1
push ebx
call fcn.004cbbb0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x5196f9
cmp byte [ebx + 0x12], 0
jne 0x518684
or dword [ebp + 0x94], 0x20
cmp dword [esp + 0x48], 0
jne 0x51869a
cmp dword [esp + 0x40], 0
mov dword [esp + 0x24], 0
je 0x5186a2
mov dword [esp + 0x24], 1
mov eax, dword [ebx + 0x74]
mov edi, eax
test eax, eax
jne 0x5186af
mov edi, ebx
mov eax, ebx
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 0x54]
mov esi, 1
shl esi, cl
test esi, edx
jne 0x5186d0
or edx, esi
mov dword [eax + 0x54], edx
cmp ecx, 1
jne 0x5186d0
call fcn.00502390
mov al, byte [esp + 0x24]
mov ecx, dword [esp + 0x14]
or dword [edi + 0x50], esi
or byte [edi + 0x14], al
cmp dword [ecx + 0x38], 0
jne 0x518758
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0x84], eax
inc eax
cmp byte [esp + 0x1f], 0
mov dword [ebx + 0x2c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x28], eax
jne 0x518710
cmp dword [esp + 0x48], 0
jne 0x518710
cmp dword [esp + 0x40], 0
je 0x518723
lea edx, [eax + 1]
mov dword [esp + 0x94], edx
movsx edx, word [ecx + 0x2a]
add edx, eax
mov dword [ebx + 0x2c], edx
cmp byte [esp + 0x58], 0
jne 0x518738
cmp dword [esp + 0x48], 0
jne 0x518738
cmp dword [esp + 0x40], 0
je 0x518742
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x2c]
lea edx, [eax + 1]
mov dword [esp + 0x8c], edx
movsx edx, word [ecx + 0x2a]
add edx, eax
mov dword [ebx + 0x2c], edx
cmp dword [esp + 0x4c], 0
je 0x5187a2
mov eax, dword [ebx + 0xec]
mov edx, dword [ecx]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0xf0]
mov dword [ebx + 0xec], edx
mov edx, dword [esp + 0xf4]
push edx
mov edx, dword [esp + 0xec]
push eax
push edx
push ecx
push ebx
mov dword [esp + 0xc4], ebx
call fcn.005115a0
add esp, 0x18
mov eax, dword [esp + 0xe4]
push eax
lea edi, [esp + 0xb8]
call fcn.004eddf0
add esp, 4
test eax, eax
jne 0x5196f9
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x38], eax
je 0x518803
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0xe8]
push eax
mov eax, dword [esp + 0xe8]
push ecx
push edx
push esi
push eax
push ebx
call fcn.00517be0
add esp, 0x20
jmp 0x5196f9
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x3c]
lea edx, [eax + 1]
mov dword [ecx + 0x3c], edx
lea edx, [eax - 1]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
test eax, edx
jne 0x51884a
lea ecx, [eax*8 + 4]
mov eax, dword [esp + 0x24]
mov edi, dword [eax + 0x40]
mov esi, dword [eax]
push 0
push ecx
call fcn.004c3800
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x3c]
add esp, 8
mov ecx, edx
mov ecx, dword [ecx + 0x40]
test ecx, ecx
je 0x518858
mov dword [ecx + eax*4], 0xffffffff
or ecx, 0xffffffff
sub ecx, eax
mov eax, dword [esp + 0x68]
test byte [eax + 0x1c], 0x80
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ecx
je 0x5188a2
cmp dword [ebx + 0x78], 0
jne 0x5188a2
cmp byte [ebx + 0x12], 0
jne 0x5188a2
cmp dword [esp + 0xf4], 0
jne 0x5188a2
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
push 0
push eax
push 0
push 0x46
push ebp
mov dword [esp + 0xb0], eax
call fcn.004c5570
add esp, 0x14
test byte [esi + 0x24], 0x20
jne 0x518901
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x84]
push ecx
push edx
push 0
push 0x49
push ebp
call fcn.004c5570
add esp, 0x14
cmp dword [esp + 0xf4], 0
je 0x518973
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xe4]
push 0x10
push ecx
push edx
push ebx
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], 1
call fcn.005140e0
mov esi, dword [esp + 0x48]
add esp, 0x10
jmp 0x518a19
cmp dword [esp + 0xf4], 0
mov eax, dword [esp + 0x30]
movzx edx, word [eax + 0x32]
mov eax, dword [ebx + 0x2c]
movsx esi, dx
lea ecx, [eax + 1]
lea eax, [esi + eax + 1]
mov dword [esp + 0xb0], edx
mov dword [esp + 0x70], ecx
mov dword [ebx + 0x2c], eax
mov dword [esp + 0x44], eax
jne 0x5188d0
mov edi, dword [ebx + 0x28]
lea eax, [esi + ecx - 1]
push eax
push ecx
push 0
lea edx, [edi + 1]
push 0x49
push ebp
mov dword [esp + 0x88], edi
mov dword [ebx + 0x28], edx
call fcn.004c5570
push 0
push esi
push edi
push 0x71
push ebp
call fcn.004c5570
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xcc], eax
add esp, 0x28
mov eax, ebx
call fcn.004f96c0
cmp byte [ebx + 0x12], 0
mov eax, 0x1004
jne 0x51899f
cmp dword [esp + 0x48], 0
jne 0x51899f
cmp dword [esp + 0x40], 0
jne 0x51899f
cmp byte [esp + 0x58], 0
jne 0x51899f
cmp dword [esp + 0x6c], 0
jne 0x51899f
mov eax, 0x100c
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0xe4]
push ecx
push eax
mov eax, dword [esp + 0xe4]
push 0
push 0
push edx
push eax
push ebx
call fcn.0050a010
add esp, 0x1c
mov dword [esp + 0x24], eax
test eax, eax
je 0x5196f9
mov ecx, dword [eax + 0x18]
movzx esi, byte [eax + 0x31]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x38], esi
cmp esi, 1
je 0x518a19
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x5189f2
mov eax, ebx
mov byte [eax + 0x14], 1
cmp esi, 2
jne 0x518a19
test ecx, ecx
jl 0x518a19
cmp ecx, dword [esp + 0x18]
je 0x518a19
sub ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
cmp byte [ecx + edx], 0
je 0x518a19
xor esi, esi
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x14]
test byte [eax + 0x24], 0x20
jne 0x518a66
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
push 0
push ecx
push edx
push 0x81
push ebp
call fcn.004c5570
add esp, 0x14
test esi, esi
jne 0x518b58
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x84]
push esi
push eax
push ecx
push 0x95
push ebp
call fcn.004c5570
add esp, 0x14
jmp 0x518b58
movsx edi, word [esp + 0xb0]
xor esi, esi
test edi, edi
jle 0x518a9e
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x30]
lea eax, [esi + edx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
push eax
movsx eax, word [edx + esi*2]
push ecx
mov ecx, dword [esp + 0x1c]
push ebp
call fcn.004ee5c0
inc esi
add esp, 0xc
cmp esi, edi
jl 0x518a74
cmp dword [esp + 0x38], 0
je 0x518af1
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x518ae0
mov ecx, dword [ebp]
cmp byte [ecx + 0x49], 0
jne 0x518ae0
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
mov eax, dword [esi + 0x10]
push edx
call fcn.004bfdb0
add esp, 4
mov byte [esi + 1], 0
mov dword [esi + 0x10], 0
mov byte [esi], 0xab
mov eax, dword [esp + 0x70]
mov dword [esp + 0x80], edi
mov dword [esp + 0x44], eax
jmp 0x518b58
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x68]
call fcn.004c8420
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x70]
push ecx
push edi
push edx
push 0x66
push ebp
mov esi, eax
call fcn.004c5570
push edi
push esi
push eax
push ebp
call fcn.004bffe0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x98]
push eax
push ecx
push edx
push 0x85
push ebp
call fcn.004c5570
mov ecx, dword [ebp]
add esp, 0x38
cmp byte [ecx + 0x49], 0
jne 0x518b58
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
lea eax, [eax + edx*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], edi
cmp dword [esp + 0xf4], 0
jne 0x518d63
mov edi, dword [esp + 0x38]
cmp edi, 2
je 0x518b7c
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004ca5a0
add esp, 4
cmp dword [esp + 0x4c], 0
jne 0x518c3d
xor esi, esi
test edi, edi
je 0x518bb9
mov eax, dword [esp + 0x5c]
test eax, eax
jl 0x518ba1
sub eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
mov byte [eax + edx], 0
mov edi, dword [esp + 0x60]
test edi, edi
jl 0x518bbd
mov ecx, dword [esp + 0x64]
mov eax, edi
sub eax, dword [esp + 0x3c]
mov byte [eax + ecx], 0
jmp 0x518bbd
mov edi, dword [esp + 0x60]
cmp dword [esp + 0x38], 2
jne 0x518beb
mov eax, dword [esp + 0x88]
xor edx, edx
test edi, edi
setge dl
sub eax, edx
test eax, eax
jle 0x518beb
push 0
push 0
push 0
push 0x11
push ebp
call fcn.004c5570
add esp, 0x14
mov esi, eax
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
push 0
push 0
push eax
push ecx
push 0
push 0x6e
push edx
push ebx
call fcn.004fada0
add esp, 0x20
test esi, esi
je 0x518c41
mov ecx, dword [ebp + 0x88]
mov eax, esi
jge 0x518c1c
lea eax, [ecx - 1]
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
je 0x518c2f
mov eax, 0x6413f8
mov dword [eax + 8], ecx
jmp 0x518c41
mov edx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
jmp 0x518c41
mov edi, dword [esp + 0x60]
cmp dword [esp + 0x38], 0
je 0x518cb9
cmp dword [esp + 0x4c], 0
jne 0x518c80
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x18]
je 0x518c80
cmp edi, dword [esp + 0x18]
je 0x518c80
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push 0x1c
mov esi, ebp
call fcn.004c57a0
add esp, 0xc
cmp dword [esp + 0x38], 1
je 0x518c92
mov eax, ebp
call fcn.004c5810
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0x44]
jne 0x518ca1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
push 0
push ecx
push eax
push 0x32
push ebp
call fcn.004c5570
add esp, 0x14
jmp 0x518d63
cmp dword [esp + 0x30], 0
je 0x518d33
mov eax, ebp
call fcn.004c5810
mov edx, dword [esp + 0x34]
push 0
mov edi, eax
mov eax, dword [esp + 0x78]
push edx
push eax
push 0x24
push ebp
mov dword [esp + 0x40], edi
call fcn.004c5570
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x88]
push 0
push esi
push ecx
push 0x80
push ebp
call fcn.004c5570
mov edx, dword [esp + 0x40]
push esi
push edi
push edx
push 0x1c
push ebp
mov dword [esp + 0xdc], eax
call fcn.004c5570
mov ecx, dword [ebp]
add esp, 0x3c
cmp byte [ecx + 0x49], 0
jne 0x518d63
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
lea eax, [eax + edx*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], 0
jmp 0x518d63
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x84]
push esi
push ecx
push edx
push 0x29
push ebp
call fcn.004c5570
push esi
push eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
push eax
push 0x1f
push ebp
call fcn.004c5570
add esp, 0x28
cmp byte [esp + 0x13], 0
je 0x518d8a
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push esi
push ecx
push ebx
call fcn.005176d0
push 0
push 0
push esi
push 0xf
push ebp
call fcn.004c5570
add esp, 0x20
cmp byte [esp + 0x1f], 0
jne 0x518e57
cmp dword [esp + 0x40], 0
jne 0x518e62
cmp dword [esp + 0x48], 0
je 0x518f4a
mov esi, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xe0]
push edx
push esi
push 3
push 0
push eax
mov eax, dword [esp + 0x5c]
push ebx
call fcn.004b8b80
or dword [esp + 0x54], eax
xor ecx, ecx
add esp, 0x18
xor edi, edi
cmp cx, word [esi + 0x2a]
jge 0x518ee0
xor edx, edx
mov dword [esp + 0x50], edx
cmp dword [esp + 0x3c], 0xffffffff
je 0x518eaf
cmp edi, 0x20
jge 0x518e16
mov ecx, edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x3c]
test ecx, eax
jne 0x518eaf
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x50]
test byte [eax + ecx + 0xf], 1
jne 0x518eaf
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x518e79
mov edx, dword [esp + 0x94]
push 0
lea eax, [edi + edx]
push eax
push 0
push 0x49
mov esi, ebp
call fcn.004c5530
mov esi, dword [esp + 0x24]
add esp, 0x10
jmp 0x518ecc
cmp dword [esp + 0x40], 0
je 0x518dab
mov esi, dword [esp + 0x14]
push esi
push ebx
call fcn.004dad70
add esp, 8
mov dword [esp + 0x3c], eax
jmp 0x518db7
lea ecx, [eax + 1]
mov dword [ebp + 0x88], ecx
mov ecx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x94]
add ecx, edi
mov byte [eax], 0x49
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0
jmp 0x518ece
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x18]
lea eax, [edi + edx]
push eax
push ecx
push ebp
mov eax, edi
mov ecx, esi
call fcn.004ee5c0
add esp, 0xc
xor edx, edx
movsx eax, word [esi + 0x2a]
add dword [esp + 0x50], 0x10
inc edi
cmp edi, eax
jl 0x518df1
cmp byte [esp + 0x13], 0
jne 0x518f4a
cmp dword [esp + 0x30], 0
jne 0x518f4a
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x518f16
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x28]
push 0
push edx
push eax
push 0x4e
mov esi, ebp
call fcn.004c5530
add esp, 0x10
jmp 0x518f4a
lea ecx, [eax + 1]
mov dword [ebp + 0x88], ecx
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax], 0x4e
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov edx, dword [esp + 0xe8]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0xe0]
push edx
push esi
push 1
push 1
push eax
mov eax, dword [esp + 0x5c]
push ebx
call fcn.004b8b80
xor ecx, ecx
add esp, 0x18
cmp cx, word [esi + 0x2a]
mov dword [esp + 0x88], eax
mov dword [esp + 0x5c], 0
jge 0x519149
mov edi, dword [esp + 0x8c]
mov edx, dword [esp + 0x14]
movsx eax, word [edx + 0x28]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jne 0x518ff7
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x518fc6
push 0
push edi
push 0
push 0x49
mov esi, ebp
call fcn.004c5530
add esp, 0x10
jmp 0x51912f
mov ecx, dword [ebp + 0x58]
lea edx, [eax + 1]
mov dword [ebp + 0x88], edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor edx, edx
xor ecx, ecx
mov byte [eax], 0x49
mov word [eax + 2], dx
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
jmp 0x51912f
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx*4]
test eax, eax
jl 0x5190e2
mov edx, dword [esp + 0xe0]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*8 + 4]
test eax, eax
je 0x519075
cmp byte [eax], 0xa4
jne 0x519075
mov esi, dword [ebx + 8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x30], eax
jg 0x519044
push 0
push edi
push ecx
push 0x4e
call fcn.004c5530
add esp, 0x10
jmp 0x51912f
lea edx, [eax + 1]
mov dword [esi + 0x88], edx
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
xor edx, edx
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax], 0x4e
mov word [eax + 2], dx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], dl
jmp 0x51912f
push edi
push eax
push ebx
call fcn.00516870
add esp, 0xc
cmp eax, edi
je 0x51912f
mov esi, dword [ebx + 8]
test esi, esi
je 0x51912f
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x30], ecx
jg 0x5190b4
push 0
push edi
push eax
push 0x4f
call fcn.004c5530
add esp, 0x10
jmp 0x51912f
lea edx, [ecx + 1]
mov dword [esi + 0x88], edx
mov edx, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
xor edx, edx
mov dword [ecx + 4], eax
xor eax, eax
mov byte [ecx], 0x4f
mov word [ecx + 2], dx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], dl
jmp 0x51912f
test dword [esp + 0x98], 1
je 0x519118
cmp ecx, 0x1f
jg 0x519118
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x88]
test ecx, eax
jne 0x519118
push 0
push edi
push 0
push 0x49
push ebp
call fcn.004c5570
add esp, 0x14
jmp 0x51912f
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x14]
push edi
push edx
push ebp
call fcn.004ee5c0
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
movsx edx, word [ecx + 0x2a]
inc eax
inc edi
cmp eax, edx
mov dword [esp + 0x5c], eax
jl 0x518f92
test byte [esp + 0x98], 1
je 0x5192c9
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
push eax
push ebp
mov eax, edi
call fcn.004c84f0
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0xe8]
push esi
push ecx
mov ecx, dword [esp + 0x58]
push edx
push edi
push 1
push eax
push 0x76
push ecx
push ebx
call fcn.0051c9c0
xor edx, edx
add esp, 0x2c
cmp dword [esp + 0x30], edx
je 0x519225
mov ecx, dword [ebp + 0x88]
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x5191cf
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
push ecx
mov edx, esi
push edx
push eax
push 0x1c
mov esi, ebp
call fcn.004c5530
add esp, 0x10
mov ecx, eax
jmp 0x519202
mov edi, dword [ebp + 0x58]
lea eax, [ecx + 1]
mov dword [ebp + 0x88], eax
lea eax, [ecx + ecx*4]
lea eax, [edi + eax*4]
xor edi, edi
mov word [eax + 2], di
mov edi, dword [esp + 0x18]
mov dword [eax + 8], esi
mov esi, dword [esp + 0x44]
mov byte [eax], 0x1c
mov dword [eax + 4], edi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
jne 0x519283
mov edx, dword [esp + 0x80]
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp + 0x58]
lea eax, [ecx + eax*4]
mov byte [eax + 1], 0xfd
jmp 0x519280
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x519250
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push edx
push eax
push ecx
push 0x1f
mov esi, ebp
call fcn.004c5530
add esp, 0x10
jmp 0x519283
lea ecx, [eax + 1]
mov dword [ebp + 0x88], ecx
mov ecx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x28]
mov byte [eax], 0x1f
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov byte [eax + 1], 0
mov dword [eax + 0x10], edx
mov edi, dword [esp + 0x14]
xor edx, edx
xor esi, esi
cmp dx, word [edi + 0x2a]
jge 0x5192c9
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*4], 0
jge 0x5192c0
movsx ecx, word [edi + 0x28]
cmp esi, ecx
je 0x5192c0
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x18]
lea eax, [esi + edx]
push eax
push ecx
push ebp
mov eax, esi
mov ecx, edi
call fcn.004ee5c0
add esp, 0xc
movsx edx, word [edi + 0x2a]
inc esi
cmp esi, edx
jl 0x519291
cmp dword [esp + 0x4c], 0
jne 0x519566
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
push 0
push eax
mov eax, dword [esp + 0xf0]
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0xa8]
push esi
push edx
mov edx, dword [esp + 0x34]
push eax
push edi
push ecx
push edx
push ebx
mov dword [esp + 0x80], 0
call fcn.005199e0
add esp, 0x34
cmp dword [esp + 0x40], 0
je 0x51934c
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
push eax
push ecx
push 0
push esi
push edx
push ebx
call fcn.0050cf20
add esp, 0x18
xor edx, edx
cmp dword [esp + 0x6c], edx
jne 0x51935e
cmp byte [esp + 0x58], dl
je 0x51942c
mov ecx, dword [ebp + 0x88]
mov eax, dword [ebp + 0xc]
cmp dword [esp + 0x30], edx
je 0x5193df
cmp dword [eax + 0x30], ecx
jg 0x519388
mov ecx, dword [esp + 0x44]
push ecx
push 0
push edi
push 0x1c
mov esi, ebp
call fcn.004c5530
add esp, 0x10
jmp 0x5193b9
mov esi, dword [ebp + 0x58]
lea eax, [ecx + 1]
mov dword [ebp + 0x88], eax
lea eax, [ecx + ecx*4]
lea eax, [esi + eax*4]
xor esi, esi
mov word [eax + 2], si
mov esi, dword [esp + 0x44]
mov byte [eax], 0x1c
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0
mov eax, ecx
mov ecx, dword [ebp]
cmp byte [ecx + 0x49], 0
jne 0x5193d9
mov ecx, dword [ebp + 0x58]
lea edx, [eax + eax*4]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x80]
mov byte [ecx + 1], 0xfd
mov dword [ecx + 0x10], edx
mov dword [esp + 0x4c], eax
jmp 0x51942c
cmp dword [eax + 0x30], ecx
jg 0x5193fe
mov ecx, dword [esp + 0x28]
push ecx
push 0
push edi
push 0x1f
mov esi, ebp
call fcn.004c5530
add esp, 0x10
mov dword [esp + 0x4c], eax
jmp 0x51942c
lea edx, [ecx + 1]
mov dword [ebp + 0x88], edx
mov edx, dword [ebp + 0x58]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
xor edx, edx
mov byte [eax], 0x1f
mov word [eax + 2], dx
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x14]
push 0xffffffffffffffff
push eax
push ecx
push edi
push ebx
mov ecx, esi
call fcn.00502790
add esp, 0x14
cmp dword [esp + 0x40], 1
jg 0x519459
cmp byte [esp + 0x58], 0
je 0x5194a8
mov eax, dword [ebp + 0x88]
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x30], eax
jg 0x51947e
push 0
push 0
push edi
push 0x7c
mov esi, ebp
call fcn.004c5530
mov esi, dword [esp + 0x24]
add esp, 0x10
jmp 0x5194a8
lea ecx, [eax + 1]
mov dword [ebp + 0x88], ecx
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
lea eax, [eax + edx*4]
xor ecx, ecx
mov byte [eax], 0x7c
mov word [eax + 2], cx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
cmp dword [esp + 0x6c], 0
jne 0x5194b6
cmp byte [esp + 0x58], 0
je 0x5194e3
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 0x88]
test eax, eax
jge 0x5194c7
lea eax, [ecx - 1]
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
je 0x5194d7
mov eax, 0x6413f8
jmp 0x5194e0
mov edx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
cmp dword [esp + 0x40], 0
je 0x519505
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x54]
push eax
push ecx
push edx
push 0
push esi
push ebx
call fcn.0050cf20
add esp, 0x18
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x54]
xor eax, eax
cmp dword [esp + 0x38], 2
push 0
setne al
push 0
dec eax
and eax, 2
or eax, 4
push eax
mov eax, dword [esp + 0x88]
push ecx
push edx
push eax
push edi
push esi
push ebx
call fcn.004d13c0
add esp, 0x24
cmp dword [esp + 0x40], 0
je 0x519566
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0xe4]
push edx
push eax
push ecx
push ebx
call fcn.004db4a0
add esp, 0x14
mov edi, dword [esp + 0x9c]
test edi, edi
je 0x5195c0
mov eax, dword [ebp + 0x88]
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x30], eax
jg 0x519592
push 0
push 1
push edi
push 0x53
mov esi, ebp
call fcn.004c5530
add esp, 0x10
jmp 0x5195c0
lea ecx, [eax + 1]
mov dword [ebp + 0x88], ecx
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x58]
lea eax, [eax + edx*4]
xor ecx, ecx
mov byte [eax], 0x53
mov word [eax + 2], cx
mov dword [eax + 4], edi
mov dword [eax + 8], 1
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
push esi
push edx
mov edx, dword [esp + 0xe8]
push eax
mov eax, dword [esp + 0x54]
push ecx
push 2
push edx
push 0x76
push eax
push ebx
call fcn.0051c9c0
mov eax, dword [esp + 0x5c]
add esp, 0x24
cmp eax, 1
je 0x519672
cmp eax, 2
jne 0x51962d
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x51961e
mov edx, dword [ebp + 0x88]
lea ecx, [esi*4 + 4]
sub eax, ecx
mov dword [eax], edx
mov eax, dword [esp + 0x24]
push eax
call fcn.004ca5a0
add esp, 4
jmp 0x519672
cmp dword [esp + 0x30], 0
je 0x519662
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x51964f
mov edx, dword [ebp + 0x88]
lea ecx, [esi*4 + 4]
sub eax, ecx
mov dword [eax], edx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x74]
push 0
push eax
push ecx
push 5
jmp 0x519669
push 0
push esi
push 0
push 0xb
push ebp
call fcn.004c5570
add esp, 0x14
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x519691
mov edx, dword [esp + 0x34]
lea ecx, [edx*4 + 4]
mov edx, dword [ebp + 0x88]
sub eax, ecx
mov dword [eax], edx
cmp byte [ebx + 0x12], 0
jne 0x5196b6
cmp dword [ebx + 0x78], 0
jne 0x5196b6
cmp dword [esp + 0xf4], 0
jne 0x5196b6
cmp dword [ebx + 0x70], 0
je 0x5196b6
push ebx
call fcn.004fac40
add esp, 4
test edi, edi
je 0x5196f9
mov eax, dword [esp + 0x9c]
push 0
push 1
push eax
push 0x51
push ebp
call fcn.004c5570
push 1
push ebp
call fcn.004c0110
mov ecx, dword [ebp]
add esp, 0x1c
cmp byte [ecx + 0x49], 0
jne 0x5196f9
mov ecx, dword [ebp + 0x64]
push 0
push 1
push str.rows_updated
or eax, 0xffffffff
call fcn.004cf3f0
add esp, 0xc
pop ebp
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x519712
mov edx, dword [esp + 0xa4]
mov dword [eax + 0xec], edx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x64]
test eax, eax
je 0x51975d
test esi, esi
je 0x519754
cmp dword [esi + 0x1d8], 0
je 0x519734
mov ecx, esi
call fcn.004aca10
jmp 0x51975d
cmp eax, dword [esi + 0x128]
jb 0x519754
cmp eax, dword [esi + 0x12c]
jae 0x519754
mov ecx, dword [esi + 0x124]
mov dword [eax], ecx
mov dword [esi + 0x124], eax
jmp 0x51975d
push eax
call fcn.004ac9a0
add esp, 4
mov edx, dword [esp + 0xd8]
push edx
mov eax, esi
call fcn.004b74d0
mov eax, dword [esp + 0xe0]
add esp, 4
test eax, eax
je 0x519784
push eax
push esi
call fcn.004c6e70
add esp, 8
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x519799
push eax
push esi
call fcn.004c6ab0
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0xc4
ret