Function at 0x518290
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 0x5198ca
cmp byte [eax + 0x49], 0
jne 0x5198ca
mov ecx, dword [esp + 0xd8]
push ebp
mov eax, ebx
call fcn.004ef710
mov ebp, eax
mov dword [esp + 0x14], ebp
cmp ebp, edi
je 0x5198c9
mov ecx, dword [ebp + 0x48]
mov dword [esp + 0x34], 0xfff0bdc0
cmp ecx, edi
je 0x51836e
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
xor edx, edx
mov dword [esp + 0x34], edx
cmp dword [eax + 0xc], ecx
je 0x51836e
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
add eax, 0xc
add eax, 0x10
inc edx
cmp dword [eax], ecx
jne 0x518362
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.004b8c70
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.004fa660
add esp, 0x10
test eax, eax
jne 0x5198c9
mov ecx, dword [esp + 0x98]
push ecx
mov ecx, ebp
mov eax, ebx
call fcn.004d9350
add esp, 4
test eax, eax
jne 0x5198c9
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 0x5183e7
mov dword [esp + 0x30], edi
jmp 0x5183f2
mov eax, ebp
call fcn.004b7150
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x88], esi
cmp eax, edi
je 0x51841f
cmp dword [esp + 0x30], eax
jne 0x51840c
mov dword [esp + 0x18], edx
inc edx
mov dword [ebx + 0x28], edx
mov eax, dword [eax + 0x14]
inc esi
cmp eax, edi
jne 0x518402
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0xf4]
cmp eax, edi
je 0x51843f
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.004bbee0
add esp, 8
mov dword [esp + 0x20], eax
cmp eax, edi
je 0x5198c9
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.00586030
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 0x5184c4
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax*4], 0xffffffff
movsx edx, word [ebp + 0x2a]
inc eax
cmp eax, edx
jl 0x5184b4
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 0x5186be
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.004edfb0
add esp, 4
test eax, eax
jne 0x5198c9
movsx eax, word [ebp + 0x2a]
xor esi, esi
test eax, eax
jle 0x5185ec
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov edi, dword [ebp + 4]
mov dword [esp + 0x78], eax
jmp 0x518590
mov eax, dword [esp + 0x78]
mov ecx, dword [edi]
call fcn.004ad170
test eax, eax
je 0x5185ad
movsx eax, word [ebp + 0x2a]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x518590
jmp 0x5185ec
movsx ecx, word [ebp + 0x28]
cmp esi, ecx
jne 0x5185c6
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov byte [esp + 0x13], 1
mov dword [esp + 0x50], eax
jmp 0x5185e1
cmp dword [esp + 0x30], 0
je 0x5185e1
mov eax, dword [ebp + 4]
mov ecx, esi
shl ecx, 4
test byte [ecx + eax + 0xf], 1
je 0x5185e1
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 0x51864f
cmp dword [esp + 0x30], 0
jne 0x5186d9
mov edi, dword [esp + 0x2c]
mov esi, dword [edi + 4]
mov eax, str._ROWID_
mov ecx, esi
call fcn.004ad170
test eax, eax
je 0x51863a
mov eax, str.ROWID
mov ecx, esi
call fcn.004ad170
test eax, eax
je 0x51863a
mov eax, 0x5f02f0
mov ecx, esi
call fcn.004ad170
test eax, eax
jne 0x5186d9
mov edx, dword [edi]
or esi, 0xffffffff
mov byte [esp + 0x13], 1
mov dword [esp + 0x50], edx
mov eax, str.ROWID
jmp 0x518665
test esi, esi
jge 0x51865a
mov eax, str.ROWID
jmp 0x518665
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.004d7e50
add esp, 0x10
cmp eax, 1
je 0x5198c9
cmp eax, 2
jne 0x5186a1
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 0x518552
mov al, byte [esp + 0x1f]
add al, byte [esp + 0x13]
cmp dword [ebp + 0x38], 0
mov byte [esp + 0x58], al
je 0x518704
mov eax, 0xffffffff
or ecx, eax
jmp 0x518708
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.004d3500
add esp, 8
mov byte [ebx + 0x11], 1
jmp 0x5198c9
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.004c2520
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
add esp, 8
mov dword [esp + 0x24], 0
test eax, eax
je 0x518801
cmp byte [esp + 0x58], 0
jne 0x5187c3
cmp dword [esp + 0x40], 1
jg 0x5187c3
cmp dword [eax + 0x24], 0
jne 0x5187c3
cmp eax, dword [esp + 0x30]
je 0x5187c3
movzx edx, word [eax + 0x32]
xor esi, esi
xor ecx, ecx
test edx, edx
jle 0x5187d6
mov ebp, dword [eax + 4]
mov edi, dword [esp + 0x20]
movzx edx, word [ebp]
test dx, dx
jl 0x518792
movsx edx, dx
cmp dword [edi + edx*4], 0
jge 0x518792
movzx edx, word [eax + 0x32]
inc ecx
add ebp, 2
cmp ecx, edx
jl 0x518772
jmp 0x5187d6
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 0x5187bd
cmp ecx, 0xb
jne 0x5187d2
cmp byte [eax + 0x36], 5
jne 0x5187d2
mov dword [esp + 0x6c], edx
jmp 0x5187d2
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 0x5187e3
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 0x518745
cmp dword [esp + 0x6c], 0
je 0x51881c
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x64]
push eax
push 1
push ecx
call fcn.00586030
add esp, 0xc
mov ebp, dword [ebx + 8]
test ebp, ebp
jne 0x518847
cmp dword [ebx + 0x74], ebp
jne 0x518834
mov edx, dword [ebx]
test byte [edx + 0x44], 8
jne 0x518834
mov byte [ebx + 0x17], 1
push ebx
call fcn.004cbd70
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x5198c9
cmp byte [ebx + 0x12], 0
jne 0x518854
or dword [ebp + 0x94], 0x20
cmp dword [esp + 0x48], 0
jne 0x51886a
cmp dword [esp + 0x40], 0
mov dword [esp + 0x24], 0
je 0x518872
mov dword [esp + 0x24], 1
mov eax, dword [ebx + 0x74]
mov edi, eax
test eax, eax
jne 0x51887f
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 0x5188a0
or edx, esi
mov dword [eax + 0x54], edx
cmp ecx, 1
jne 0x5188a0
call fcn.00502560
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 0x518928
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 0x5188e0
cmp dword [esp + 0x48], 0
jne 0x5188e0
cmp dword [esp + 0x40], 0
je 0x5188f3
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 0x518908
cmp dword [esp + 0x48], 0
jne 0x518908
cmp dword [esp + 0x40], 0
je 0x518912
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 0x518972
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.00511770
add esp, 0x18
mov eax, dword [esp + 0xe4]
push eax
lea edi, [esp + 0xb8]
call fcn.004edfb0
add esp, 4
test eax, eax
jne 0x5198c9
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x38], eax
je 0x5189d3
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.00517db0
add esp, 0x20
jmp 0x5198c9
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 0x518a1a
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.004c39b0
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 0x518a28
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 0x518a72
cmp dword [ebx + 0x78], 0
jne 0x518a72
cmp byte [ebx + 0x12], 0
jne 0x518a72
cmp dword [esp + 0xf4], 0
jne 0x518a72
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.004c5720
add esp, 0x14
test byte [esi + 0x24], 0x20
jne 0x518ad1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x84]
push ecx
push edx
push 0
push 0x49
push ebp
call fcn.004c5720
add esp, 0x14
cmp dword [esp + 0xf4], 0
je 0x518b43
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.005142b0
mov esi, dword [esp + 0x48]
add esp, 0x10
jmp 0x518be9
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 0x518aa0
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.004c5720
push 0
push esi
push edi
push 0x71
push ebp
call fcn.004c5720
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xcc], eax
add esp, 0x28
mov eax, ebx
call fcn.004f9880
cmp byte [ebx + 0x12], 0
mov eax, 0x1004
jne 0x518b6f
cmp dword [esp + 0x48], 0
jne 0x518b6f
cmp dword [esp + 0x40], 0
jne 0x518b6f
cmp byte [esp + 0x58], 0
jne 0x518b6f
cmp dword [esp + 0x6c], 0
jne 0x518b6f
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.0050a1e0
add esp, 0x1c
mov dword [esp + 0x24], eax
test eax, eax
je 0x5198c9
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 0x518be9
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x518bc2
mov eax, ebx
mov byte [eax + 0x14], 1
cmp esi, 2
jne 0x518be9
test ecx, ecx
jl 0x518be9
cmp ecx, dword [esp + 0x18]
je 0x518be9
sub ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
cmp byte [ecx + edx], 0
je 0x518be9
xor esi, esi
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x14]
test byte [eax + 0x24], 0x20
jne 0x518c36
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
push 0
push ecx
push edx
push 0x81
push ebp
call fcn.004c5720
add esp, 0x14
test esi, esi
jne 0x518d28
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x84]
push esi
push eax
push ecx
push 0x95
push ebp
call fcn.004c5720
add esp, 0x14
jmp 0x518d28
movsx edi, word [esp + 0xb0]
xor esi, esi
test edi, edi
jle 0x518c6e
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.004ee780
inc esi
add esp, 0xc
cmp esi, edi
jl 0x518c44
cmp dword [esp + 0x38], 0
je 0x518cc1
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x518cb0
mov ecx, dword [ebp]
cmp byte [ecx + 0x49], 0
jne 0x518cb0
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.004bff60
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 0x518d28
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x68]
call fcn.004c85e0
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.004c5720
push edi
push esi
push eax
push ebp
call fcn.004c0190
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.004c5720
mov ecx, dword [ebp]
add esp, 0x38
cmp byte [ecx + 0x49], 0
jne 0x518d28
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 0x518f33
mov edi, dword [esp + 0x38]
cmp edi, 2
je 0x518d4c
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004ca760
add esp, 4
cmp dword [esp + 0x4c], 0
jne 0x518e0d
xor esi, esi
test edi, edi
je 0x518d89
mov eax, dword [esp + 0x5c]
test eax, eax
jl 0x518d71
sub eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
mov byte [eax + edx], 0
mov edi, dword [esp + 0x60]
test edi, edi
jl 0x518d8d
mov ecx, dword [esp + 0x64]
mov eax, edi
sub eax, dword [esp + 0x3c]
mov byte [eax + ecx], 0
jmp 0x518d8d
mov edi, dword [esp + 0x60]
cmp dword [esp + 0x38], 2
jne 0x518dbb
mov eax, dword [esp + 0x88]
xor edx, edx
test edi, edi
setge dl
sub eax, edx
test eax, eax
jle 0x518dbb
push 0
push 0
push 0
push 0x11
push ebp
call fcn.004c5720
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.004faf60
add esp, 0x20
test esi, esi
je 0x518e11
mov ecx, dword [ebp + 0x88]
mov eax, esi
jge 0x518dec
lea eax, [ecx - 1]
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
je 0x518dff
mov eax, 0x6413f8
mov dword [eax + 8], ecx
jmp 0x518e11
mov edx, dword [ebp + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
jmp 0x518e11
mov edi, dword [esp + 0x60]
cmp dword [esp + 0x38], 0
je 0x518e89
cmp dword [esp + 0x4c], 0
jne 0x518e50
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x18]
je 0x518e50
cmp edi, dword [esp + 0x18]
je 0x518e50
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.004c5950
add esp, 0xc
cmp dword [esp + 0x38], 1
je 0x518e62
mov eax, ebp
call fcn.004c59c0
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x30], 0
mov eax, dword [esp + 0x44]
jne 0x518e71
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
push 0
push ecx
push eax
push 0x32
push ebp
call fcn.004c5720
add esp, 0x14
jmp 0x518f33
cmp dword [esp + 0x30], 0
je 0x518f03
mov eax, ebp
call fcn.004c59c0
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.004c5720
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x88]
push 0
push esi
push ecx
push 0x80
push ebp
call fcn.004c5720
mov edx, dword [esp + 0x40]
push esi
push edi
push edx
push 0x1c
push ebp
mov dword [esp + 0xdc], eax
call fcn.004c5720
mov ecx, dword [ebp]
add esp, 0x3c
cmp byte [ecx + 0x49], 0
jne 0x518f33
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 0x518f33
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.004c5720
push esi
push eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
push eax
push 0x1f
push ebp
call fcn.004c5720
add esp, 0x28
cmp byte [esp + 0x13], 0
je 0x518f5a
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push esi
push ecx
push ebx
call fcn.005178a0
push 0
push 0
push esi
push 0xf
push ebp
call fcn.004c5720
add esp, 0x20
cmp byte [esp + 0x1f], 0
jne 0x519027
cmp dword [esp + 0x40], 0
jne 0x519032
cmp dword [esp + 0x48], 0
je 0x51911a
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.004b8d40
or dword [esp + 0x54], eax
xor ecx, ecx
add esp, 0x18
xor edi, edi
cmp cx, word [esi + 0x2a]
jge 0x5190b0
xor edx, edx
mov dword [esp + 0x50], edx
cmp dword [esp + 0x3c], 0xffffffff
je 0x51907f
cmp edi, 0x20
jge 0x518fe6
mov ecx, edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x3c]
test ecx, eax
jne 0x51907f
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x50]
test byte [eax + ecx + 0xf], 1
jne 0x51907f
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x519049
mov edx, dword [esp + 0x94]
push 0
lea eax, [edi + edx]
push eax
push 0
push 0x49
mov esi, ebp
call fcn.004c56e0
mov esi, dword [esp + 0x24]
add esp, 0x10
jmp 0x51909c
cmp dword [esp + 0x40], 0
je 0x518f7b
mov esi, dword [esp + 0x14]
push esi
push ebx
call fcn.004daf30
add esp, 8
mov dword [esp + 0x3c], eax
jmp 0x518f87
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 0x51909e
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.004ee780
add esp, 0xc
xor edx, edx
movsx eax, word [esi + 0x2a]
add dword [esp + 0x50], 0x10
inc edi
cmp edi, eax
jl 0x518fc1
cmp byte [esp + 0x13], 0
jne 0x51911a
cmp dword [esp + 0x30], 0
jne 0x51911a
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x5190e6
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x28]
push 0
push edx
push eax
push 0x4e
mov esi, ebp
call fcn.004c56e0
add esp, 0x10
jmp 0x51911a
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.004b8d40
xor ecx, ecx
add esp, 0x18
cmp cx, word [esi + 0x2a]
mov dword [esp + 0x88], eax
mov dword [esp + 0x5c], 0
jge 0x519319
mov edi, dword [esp + 0x8c]
mov edx, dword [esp + 0x14]
movsx eax, word [edx + 0x28]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jne 0x5191c7
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x519196
push 0
push edi
push 0
push 0x49
mov esi, ebp
call fcn.004c56e0
add esp, 0x10
jmp 0x5192ff
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 0x5192ff
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx*4]
test eax, eax
jl 0x5192b2
mov edx, dword [esp + 0xe0]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*8 + 4]
test eax, eax
je 0x519245
cmp byte [eax], 0xa4
jne 0x519245
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 0x519214
push 0
push edi
push ecx
push 0x4e
call fcn.004c56e0
add esp, 0x10
jmp 0x5192ff
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 0x5192ff
push edi
push eax
push ebx
call fcn.00516a40
add esp, 0xc
cmp eax, edi
je 0x5192ff
mov esi, dword [ebx + 8]
test esi, esi
je 0x5192ff
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0xc]
cmp dword [edx + 0x30], ecx
jg 0x519284
push 0
push edi
push eax
push 0x4f
call fcn.004c56e0
add esp, 0x10
jmp 0x5192ff
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 0x5192ff
test dword [esp + 0x98], 1
je 0x5192e8
cmp ecx, 0x1f
jg 0x5192e8
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x88]
test ecx, eax
jne 0x5192e8
push 0
push edi
push 0
push 0x49
push ebp
call fcn.004c5720
add esp, 0x14
jmp 0x5192ff
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x14]
push edi
push edx
push ebp
call fcn.004ee780
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 0x519162
test byte [esp + 0x98], 1
je 0x519499
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
push eax
push ebp
mov eax, edi
call fcn.004c86b0
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.0051cb90
xor edx, edx
add esp, 0x2c
cmp dword [esp + 0x30], edx
je 0x5193f5
mov ecx, dword [ebp + 0x88]
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x51939f
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.004c56e0
add esp, 0x10
mov ecx, eax
jmp 0x5193d2
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 0x519453
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 0x519450
mov eax, dword [ebp + 0x88]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x30], eax
jg 0x519420
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.004c56e0
add esp, 0x10
jmp 0x519453
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 0x519499
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*4], 0
jge 0x519490
movsx ecx, word [edi + 0x28]
cmp esi, ecx
je 0x519490
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.004ee780
add esp, 0xc
movsx edx, word [edi + 0x2a]
inc esi
cmp esi, edx
jl 0x519461
cmp dword [esp + 0x4c], 0
jne 0x519736
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.00519bb0
add esp, 0x34
cmp dword [esp + 0x40], 0
je 0x51951c
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.0050d0f0
add esp, 0x18
xor edx, edx
cmp dword [esp + 0x6c], edx
jne 0x51952e
cmp byte [esp + 0x58], dl
je 0x5195fc
mov ecx, dword [ebp + 0x88]
mov eax, dword [ebp + 0xc]
cmp dword [esp + 0x30], edx
je 0x5195af
cmp dword [eax + 0x30], ecx
jg 0x519558
mov ecx, dword [esp + 0x44]
push ecx
push 0
push edi
push 0x1c
mov esi, ebp
call fcn.004c56e0
add esp, 0x10
jmp 0x519589
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 0x5195a9
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 0x5195fc
cmp dword [eax + 0x30], ecx
jg 0x5195ce
mov ecx, dword [esp + 0x28]
push ecx
push 0
push edi
push 0x1f
mov esi, ebp
call fcn.004c56e0
add esp, 0x10
mov dword [esp + 0x4c], eax
jmp 0x5195fc
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.00502960
add esp, 0x14
cmp dword [esp + 0x40], 1
jg 0x519629
cmp byte [esp + 0x58], 0
je 0x519678
mov eax, dword [ebp + 0x88]
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x30], eax
jg 0x51964e
push 0
push 0
push edi
push 0x7c
mov esi, ebp
call fcn.004c56e0
mov esi, dword [esp + 0x24]
add esp, 0x10
jmp 0x519678
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 0x519686
cmp byte [esp + 0x58], 0
je 0x5196b3
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 0x88]
test eax, eax
jge 0x519697
lea eax, [ecx - 1]
mov edx, dword [ebp]
cmp byte [edx + 0x49], 0
je 0x5196a7
mov eax, 0x6413f8
jmp 0x5196b0
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 0x5196d5
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.0050d0f0
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.004d1580
add esp, 0x24
cmp dword [esp + 0x40], 0
je 0x519736
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.004db660
add esp, 0x14
mov edi, dword [esp + 0x9c]
test edi, edi
je 0x519790
mov eax, dword [ebp + 0x88]
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x30], eax
jg 0x519762
push 0
push 1
push edi
push 0x53
mov esi, ebp
call fcn.004c56e0
add esp, 0x10
jmp 0x519790
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.0051cb90
mov eax, dword [esp + 0x5c]
add esp, 0x24
cmp eax, 1
je 0x519842
cmp eax, 2
jne 0x5197fd
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x5197ee
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.004ca760
add esp, 4
jmp 0x519842
cmp dword [esp + 0x30], 0
je 0x519832
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x51981f
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 0x519839
push 0
push esi
push 0
push 0xb
push ebp
call fcn.004c5720
add esp, 0x14
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x519861
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 0x519886
cmp dword [ebx + 0x78], 0
jne 0x519886
cmp dword [esp + 0xf4], 0
jne 0x519886
cmp dword [ebx + 0x70], 0
je 0x519886
push ebx
call fcn.004fae00
add esp, 4
test edi, edi
je 0x5198c9
mov eax, dword [esp + 0x9c]
push 0
push 1
push eax
push 0x51
push ebp
call fcn.004c5720
push 1
push ebp
call fcn.004c02c0
mov ecx, dword [ebp]
add esp, 0x1c
cmp byte [ecx + 0x49], 0
jne 0x5198c9
mov ecx, dword [ebp + 0x64]
push 0
push 1
push str.rows_updated
or eax, 0xffffffff
call fcn.004cf5b0
add esp, 0xc
pop ebp
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x5198e2
mov edx, dword [esp + 0xa4]
mov dword [eax + 0xec], edx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x64]
test eax, eax
je 0x51992d
test esi, esi
je 0x519924
cmp dword [esi + 0x1d8], 0
je 0x519904
mov ecx, esi
call fcn.004acbd0
jmp 0x51992d
cmp eax, dword [esi + 0x128]
jb 0x519924
cmp eax, dword [esi + 0x12c]
jae 0x519924
mov ecx, dword [esi + 0x124]
mov dword [eax], ecx
mov dword [esi + 0x124], eax
jmp 0x51992d
push eax
call fcn.004acb60
add esp, 4
mov edx, dword [esp + 0xd8]
push edx
mov eax, esi
call fcn.004b7690
mov eax, dword [esp + 0xe0]
add esp, 4
test eax, eax
je 0x519954
push eax
push esi
call fcn.004c7020
add esp, 8
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x519969
push eax
push esi
call fcn.004c6c60
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0xc4
ret