Function at 0x5175ca
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x11c
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc0], eax
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
mov al, byte [esi]
cmp al, 0x4b
je 0x517646
ja 0x517612
cmp al, 0x14
je case.0x51760b.4
sub eax, 0x2d
cmp al, 0xe
ja case.0x51760b.1
movzx eax, al
jmp dword [eax*4 + 0x665ac0]
cmp al, 0x9c
je 0x518dc7
ja 0x517631
cmp al, 0x8a
je case.0x51760b.4
cmp al, 0x8d
je 0x517749
jmp case.0x51760b.1
cmp al, 0xab
je case.0x51760b.0
cmp al, 0xac
je 0x518599
jmp case.0x51760b.1
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x34]
mov word [esi], 0x44a7
dec word [esi + 0x20]
mov dword [esi + 0x2c], edx
mov dword [esi + 0x1c], eax
jmp case.0x51760b.1
mov edx, dword [ebp - 0xc0]
xor eax, eax
test edx, edx
je 0x51768a
cmp eax, 7
jg 0x51768a
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov dword [ebp + eax*4 - 0x98], ecx
inc eax
jmp 0x517671
mov edx, dword [esi + 0xc]
mov eax, dword [ebp + 8]
call fcn.004f16cf
mov ebx, dword [esi + 0xc]
mov eax, ebx
call fcn.004cef0d
test eax, eax
jne 0x5182a7
mov edi, dword [ebp - 0xbc]
cmp byte [edi + 0xd4], 1
ja 0x5182a7
cmp byte [esi], 0x33
mov edx, dword [esi + 4]
jne 0x5176d1
mov dword [esi + 8], 0x663e88
or edx, 0x10000000
jmp 0x5176de
mov dword [esi + 8], 0x663e8d
or edx, 0x20000000
mov dword [esi + 4], edx
mov byte [esi], 0xaa
mov edi, dword [ebp - 0xc0]
mov edx, dword [ebp + eax*4 - 0x98]
inc eax
mov dword [edi + 0x10], edx
mov edi, dword [edi + 0xc]
mov dword [ebp - 0xc0], edi
test edi, edi
je 0x517707
cmp eax, 7
jle 0x5176e4
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], ebx
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004ed94d
mov dword [esi + 0xc], 0
jmp 0x5182a7
mov dword [ebp - 0xdc], 0
mov eax, dword [esi + 8]
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xcc], eax
jmp 0x5177da
mov eax, dword [ebp - 0xc0]
mov ebx, dword [esi + 0xc]
mov edx, dword [eax + 0x18]
test dl, 0x28
je 0x517775
mov dword [esp + 4], esi
mov eax, dword [ebp - 0xbc]
mov ecx, str.the__.__operator
mov dword [esp], 0
call fcn.00504edd
mov dword [ebp - 0xdc], 0
mov ecx, dword [esi + 0x10]
cmp byte [ecx], 0x3b
je 0x517796
mov eax, dword [ebx + 8]
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0xd4], 1
jbe 0x5177da
mov eax, dword [eax + 0x110]
mov edx, esi
call fcn.004f129e
mov eax, dword [ebp - 0xbc]
lea edx, [esi + 0x2c]
mov ecx, ebx
mov eax, dword [eax + 0x110]
call fcn.004f129e
mov eax, dword [ebp - 0xbc]
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], 0
mov eax, dword [eax]
mov dword [esi + 0x1c], 0xffffffff
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xd8], eax
je 0x5178be
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 0x18]
mov ebx, eax
mov dword [ebp - 0xc4], eax
and ebx, 6
jne 0x5178aa
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xc4], eax
cmp ebx, dword [ebp - 0xc4]
jge 0x51786e
mov eax, dword [ebp - 0xd8]
mov edi, ebx
mov edx, dword [ebp - 0xdc]
shl edi, 4
add edi, dword [eax + 0x10]
mov eax, dword [edi]
call fcn.004a13de
test eax, eax
jne 0x51786b
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xe0], eax
jmp 0x5178be
inc ebx
jmp 0x517839
mov dword [ebp - 0xe0], 0
jne 0x5178be
mov edx, dword [ebp - 0xdc]
mov eax, str.main
call fcn.004a13de
test eax, eax
jne 0x5178be
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xdc], eax
jmp 0x5178be
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xe8], 0xa7
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0x104], 0
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 4]
mov dword [ebp - 0xf8], eax
test eax, eax
je 0x517d0c
mov dword [ebp - 0xfc], 0
lea ebx, [eax + 8]
mov eax, dword [ebp - 0xf8]
mov edi, dword [ebp - 0xfc]
cmp edi, dword [eax]
jge 0x517ccf
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xec], eax
test byte [ebx + 0x29], 0x20
je 0x517aa8
mov dword [ebp - 0x108], 0
mov eax, dword [ebx + 0x14]
xor edi, edi
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xf0], eax
add eax, 8
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xf0]
cmp edi, dword [eax]
jge 0x517a8d
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xcc]
mov dword [esp], eax
mov eax, dword [ebp - 0x100]
call fcn.004f04dc
test eax, eax
je 0x517a80
cmp dword [ebp - 0xe4], 0
je 0x517a42
test byte [ebx + 0x29], 4
je 0x5179c3
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0xcc]
call fcn.004d24ba
test eax, eax
jns 0x5179e7
mov eax, dword [ebp - 0x98]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004eda3d
mov dword [ebp - 0x98], 0
jmp 0x517a42
mov al, byte [ebx + 0x24]
test al, 0x10
je 0x517a80
test al, 8
jne 0x517a24
mov eax, dword [ebp - 0x98]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004eda3d
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xe4], 0
jmp 0x517a42
movsx eax, word [esi + 0x20]
mov ecx, dword [ebp - 0xc4]
lea edx, [ebp - 0x98]
mov dword [esp], eax
mov eax, dword [ebp - 0xbc]
call fcn.004fed72
imul edx, edi, 0x14
add edx, dword [ebp - 0xf0]
mov word [esi + 0x20], di
mov al, byte [edx + 0x14]
inc dword [ebp - 0xe4]
mov dword [ebp - 0xc4], ebx
or eax, 0x40
mov byte [edx + 0x14], al
test al, al
js 0x517cb7
mov dword [ebp - 0x108], 1
mov dword [ebp - 0xf4], 2
add dword [ebp - 0x100], 0x14
inc edi
jmp 0x517968
cmp dword [ebp - 0xc8], 0
je 0x517cc1
cmp dword [ebp - 0x108], 0
je 0x517ab5
jmp 0x517cc1
cmp dword [ebp - 0xc8], 0
je 0x517b3c
cmp dword [ebp - 0xdc], 0
je 0x517af5
mov eax, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe0]
cmp dword [eax + 0x3c], edi
jne 0x517cc1
test edi, edi
jne 0x517af5
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], 0x66584a
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x517cc1
mov edi, dword [ebx + 0xc]
mov eax, edi
test edi, edi
jne 0x517b06
mov eax, dword [ebp - 0xec]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc8]
call fcn.004a13de
test eax, eax
jne 0x517cc1
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0xd4], 1
jbe 0x517b3c
test edi, edi
je 0x517b3c
mov eax, dword [eax + 0x110]
lea ecx, [esi + 0x2c]
xor edx, edx
call fcn.004f129e
mov eax, dword [ebp - 0xcc]
call fcn.004e5d7c
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0x100], al
mov eax, dword [ebp - 0xec]
mov edi, dword [eax + 4]
movsx eax, word [eax + 0x22]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
cmp dword [ebp - 0xf0], ecx
jge 0x517c94
mov al, byte [ebp - 0x100]
cmp al, byte [edi + 0xa]
jne 0x517c86
mov edx, dword [ebp - 0xcc]
mov eax, dword [edi]
call fcn.004a13de
test eax, eax
jne 0x517c86
cmp dword [ebp - 0xe4], 0
mov al, byte [ebx + 0x29]
je 0x517c45
test al, 4
je 0x517bc6
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0xcc]
call fcn.004d24ba
test eax, eax
jns 0x517bea
mov eax, dword [ebp - 0x98]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004eda3d
mov dword [ebp - 0x98], 0
jmp 0x517c45
mov al, byte [ebx + 0x24]
test al, 0x10
je 0x517c86
test al, 8
jne 0x517c27
mov eax, dword [ebp - 0x98]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004eda3d
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xe4], 0
jmp 0x517c45
movsx eax, word [esi + 0x20]
mov ecx, dword [ebp - 0xc4]
lea edx, [ebp - 0x98]
mov dword [esp], eax
mov eax, dword [ebp - 0xbc]
call fcn.004fed72
mov eax, dword [ebp - 0xec]
inc dword [ebp - 0xe4]
mov dword [ebp - 0xc4], ebx
movsx eax, word [eax + 0x20]
cmp eax, dword [ebp - 0xf0]
mov eax, 0xffffffff
cmovne eax, dword [ebp - 0xf0]
mov word [esi + 0x20], ax
test byte [ebx + 0x29], 0x20
je 0x517cc1
mov edx, dword [ebp - 0xf0]
mov eax, ebx
call fcn.004d3aa6
jmp 0x517cc1
inc dword [ebp - 0xf0]
add edi, 0x10
jmp 0x517b6a
cmp dword [ebp - 0xe4], 0
jne 0x517cc1
mov eax, dword [ebp - 0xec]
test byte [eax + 0x1d], 2
jne 0x517cc1
inc dword [ebp - 0xf4]
mov dword [ebp - 0xc4], ebx
jmp 0x517cc1
mov dword [ebp - 0xf4], 2
inc dword [ebp - 0xfc]
add ebx, 0x48
jmp 0x517920
cmp dword [ebp - 0xc4], 0
je 0x517d0c
mov eax, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xc4]
mov eax, dword [eax + 0x2c]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x2c], eax
test byte [edi + 0x24], 0x48
je 0x517d03
or dword [esi + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0xe0], eax
mov edi, dword [ebp - 0xdc]
or edi, dword [ebp - 0xe4]
jne 0x518020
mov eax, dword [ebp - 0xbc]
cmp dword [ebp - 0xc8], 0
setne byte [ebp - 0xec]
mov ebx, dword [eax + 0x7c]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xf0], eax
test ebx, ebx
je 0x517e0d
mov eax, dword [ebp - 0xbc]
movzx eax, byte [eax + 0x98]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0x99], 0
je 0x517daa
bt dword [ebp - 0xf0], 0xa
jae 0x517e0b
cmp dword [ebp - 0xc8], 0
je 0x517d96
mov edx, dword [ebx]
mov eax, dword [ebp - 0xc8]
call fcn.004a13de
test eax, eax
jne 0x517e0b
xor eax, eax
cmp dword [ebp - 0xe4], 0x80
setne al
mov dword [esi + 0x1c], eax
jmp 0x517e0d
cmp dword [ebp - 0xe4], 0x80
je 0x517ddc
cmp byte [ebp - 0xec], 0
je 0x517ddc
mov edx, dword [ebp - 0xc8]
mov eax, 0x66584c
call fcn.004a13de
test eax, eax
jne 0x517ddc
mov dword [esi + 0x1c], 1
jmp 0x517e0d
cmp dword [ebp - 0xe4], 0x7f
je 0x517e0b
cmp byte [ebp - 0xec], 0
je 0x517e0b
mov edx, dword [ebp - 0xc8]
mov eax, 0x665850
call fcn.004a13de
test eax, eax
jne 0x517e0b
mov dword [esi + 0x1c], 0
jmp 0x517e0d
xor ebx, ebx
bt dword [ebp - 0xf0], 9
jae 0x517e5a
cmp byte [ebp - 0xec], 0
je 0x517e5a
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [ebp - 0xe4], ecx
je 0x517e5a
mov edx, dword [ebp - 0xc8]
mov eax, str.excluded
call fcn.004a13de
test eax, eax
jne 0x517e5a
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx + 0x20]
mov ebx, dword [eax + 0x18]
mov dword [esi + 0x1c], 2
test ebx, ebx
je 0x51802a
mov eax, dword [ebp - 0xcc]
call fcn.004e5d7c
inc dword [ebp - 0xf4]
xor ecx, ecx
mov byte [ebp - 0xf0], al
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0xe4], eax
movsx eax, word [ebx + 0x22]
mov dword [ebp - 0xec], eax
cmp ecx, dword [ebp - 0xec]
jge 0x517ee7
mov edx, dword [ebp - 0xe4]
mov al, byte [ebp - 0xf0]
cmp al, byte [edx + 0xa]
jne 0x517edd
mov eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xf8], ecx
mov eax, dword [eax]
call fcn.004a13de
mov ecx, dword [ebp - 0xf8]
test eax, eax
jne 0x517edd
movsx eax, word [ebx + 0x20]
cmp eax, ecx
jne 0x517f14
jmp 0x517f11
add dword [ebp - 0xe4], 0x10
inc ecx
jmp 0x517e97
mov eax, dword [ebp - 0xcc]
call fcn.004e82d5
test eax, eax
je 0x518028
test byte [ebx + 0x1d], 2
jne 0x51802a
cmp dword [ebp - 0xec], 0
js 0x51802a
or ecx, 0xffffffff
mov eax, dword [esi + 0x1c]
cmp eax, 2
jne 0x517f75
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0xd4], 1
jbe 0x517f3e
mov word [esi + 0x20], cx
mov dword [esi + 0x2c], ebx
mov dword [ebp - 0xe8], 0xa7
jmp 0x517f61
mov edx, ecx
mov eax, ebx
call fcn.004e8cba
mov edi, dword [ebp - 0xd0]
cwde
mov edx, dword [edi + 8]
add eax, dword [edx + 0x24]
mov dword [esi + 0x1c], eax
mov dword [ebp - 0xe8], 0xb0
mov dword [ebp - 0xc4], 0
mov edi, 1
jmp 0x51802a
mov edi, dword [ebp - 0xbc]
mov dword [esi + 0x2c], ebx
cmp byte [edi + 0x99], 0
je 0x517fb0
mov edx, dword [ebp - 0xec]
mov edi, dword [ebp - 0xd0]
mov byte [esi + 2], 0xa7
inc edx
imul eax, edx
add eax, dword [edi + 8]
mov edx, ecx
mov edi, eax
mov eax, ebx
call fcn.004e8cba
cwde
lea eax, [edi + eax + 1]
jmp 0x517f54
mov word [esi + 0x20], cx
cmp ecx, 0xffffffff
jne 0x517fbf
mov byte [esi + 1], 0x44
jmp 0x518011
test eax, eax
mov eax, dword [ebp - 0xbc]
jne 0x517fee
mov edx, dword [eax + 0x90]
or eax, 0xffffffff
cmp ecx, 0x1f
jg 0x517fde
mov eax, 1
shl eax, cl
mov edi, dword [ebp - 0xbc]
or eax, edx
mov dword [edi + 0x90], eax
jmp 0x518011
mov edx, dword [eax + 0x94]
or eax, 0xffffffff
cmp ecx, 0x1f
jg 0x518003
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0xbc]
or eax, edx
mov dword [ecx + 0x94], eax
mov dword [ebp - 0xe8], 0x4d
jmp 0x517f61
mov edi, dword [ebp - 0xe4]
jmp 0x51802a
xor edi, edi
test edi, edi
jne 0x518218
cmp dword [ebp - 0xf4], 1
jne 0x518082
cmp dword [ebp - 0xc4], 0
je 0x51808a
mov eax, dword [ebp - 0xd0]
test byte [eax + 0x18], 0x28
jne 0x51808a
mov eax, dword [ebp - 0xcc]
call fcn.004e82d5
test eax, eax
je 0x51808a
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0x10]
test byte [eax + 0x1d], 2
jne 0x51808a
mov word [esi + 0x20], 0xffff
mov edi, 1
mov byte [esi + 1], 0x44
jmp 0x518218
test edi, edi
jne 0x518218
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xe4], eax
cmp byte [ebp - 0xe4], 0
jns 0x5181f9
cmp dword [ebp - 0xc8], 0
jne 0x5181f9
mov eax, dword [ebp - 0xd0]
xor ecx, ecx
mov ebx, dword [eax + 8]
mov eax, dword [ebx]
mov dword [ebp - 0xec], eax
cmp ecx, dword [ebp - 0xec]
jge 0x5181f9
imul eax, ecx, 0x14
lea edx, [ebx + eax]
test byte [edx + 0x14], 3
jne 0x5181f3
mov edi, dword [ebx + eax + 0xc]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf0], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004a220e
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xf8]
test eax, eax
jne 0x5181f3
mov eax, dword [edx + 8]
mov dword [ebp - 0xc4], eax
mov edx, dword [eax + 4]
test byte [ebp - 0xe4], 1
jne 0x518140
test dl, 0x10
je 0x518140
mov dword [esp + 8], edi
mov dword [esp + 4], str.misuse_of_aliased_aggregate__s
jmp 0x51816a
bt edx, 0xf
jae 0x51817d
bt dword [ebp - 0xe4], 0xe
jae 0x51815e
mov eax, dword [ebp - 0xd0]
cmp dword [ebp - 0xc0], eax
je 0x51817d
mov dword [esp + 8], edi
mov dword [esp + 4], str.misuse_of_aliased_window_function__s
mov eax, dword [ebp - 0xbc]
mov dword [esp], eax
call fcn.004fa8d7
jmp 0x518eb3
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], ecx
call fcn.004cdfa8
mov ecx, dword [ebp - 0xc8]
dec eax
je 0x5181b2
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], str.row_value_misused
mov dword [esp], eax
call fcn.004fa8d7
jmp 0x518eb3
mov eax, dword [ebp - 0x104]
mov dword [esp], esi
mov edx, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xbc]
call fcn.004fdbb0
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0xd4], 1
jbe 0x5184cc
mov eax, dword [eax + 0x110]
mov ecx, esi
xor edx, edx
call fcn.004f129e
jmp 0x5184cc
inc ecx
jmp 0x5180c6
mov eax, dword [ebp - 0xd0]
inc dword [ebp - 0x104]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x5178f2
xor edi, edi
mov eax, dword [ebp - 0xc8]
or eax, edi
jne 0x5182d0
test byte [esi + 4], 0x80
je 0x5182b6
mov eax, dword [ebp - 0xd8]
cmp byte [eax + 0xb1], 0
jne 0x518277
mov ecx, dword [ebp - 0xc0]
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
test byte [ecx + 0x1a], 1
je 0x51826c
mov ecx, eax
and ecx, 0x10000001
dec ecx
jne 0x518266
mov ecx, eax
and ecx, 0x40000000
jne 0x518277
shrd eax, edx, 0x1d
jmp 0x518270
shrd eax, edx, 0x1e
and eax, 1
test eax, eax
je 0x5182b6
mov eax, dword [ebp - 0xcc]
mov dword [esp + 4], str.double_quoted_string_literal:___w_
add esi, 0x2c
mov dword [esp], 0x1c
mov dword [esp + 8], eax
call fcn.00505e47
mov byte [esi - 0x2c], 0x75
mov ecx, 2
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov dword [ebp - 0xc4], 1
jmp 0x518ebd
mov eax, esi
call fcn.004e7c4a
test eax, eax
jne 0x5182a7
mov eax, dword [ebp - 0x98]
test eax, eax
jne 0x5182db
jmp 0x518383
cmp edi, 1
je 0x518448
jmp 0x5182c1
lea edx, [edi - 1]
cmp dword [eax], edx
jne 0x518367
mov eax, dword [esi + 4]
bt eax, 0x17
jae 0x5182f9
and eax, 0xff7fffff
mov dword [esi + 4], eax
jmp 0x518331
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004ed94d
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004ed94d
mov dword [esi + 0x10], 0
movsx eax, word [esi + 0x20]
mov ecx, dword [ebp - 0xc4]
lea edx, [ebp - 0x98]
mov dword [esp], eax
mov eax, dword [ebp - 0xbc]
call fcn.004fed72
mov eax, dword [ebp - 0x98]
mov byte [esi], 0xac
mov dword [esi + 8], str.coalesce
mov dword [esi + 0x14], eax
jmp 0x5184cc
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004eda3d
mov dword [ebp - 0x98], 0
test edi, edi
mov eax, str.no_such_column
mov edx, str.ambiguous_column_name
mov ecx, dword [ebp - 0xcc]
cmovne eax, edx
cmp dword [ebp - 0xdc], 0
je 0x5183d5
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xbc]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0xdc]
mov dword [esp + 4], str._s:__s._s._s
mov dword [esp + 0xc], ecx
mov dword [esp], eax
call fcn.004fa8d7
jmp 0x518426
cmp dword [ebp - 0xc8], 0
je 0x518408
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xbc]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], str._s:__s._s
mov dword [esp], eax
call fcn.004fa8d7
jmp 0x518426
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xbc]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], str._s:__s
mov dword [esp], eax
call fcn.004fa8d7
mov eax, dword [ebp - 0xbc]
mov edx, esi
mov eax, dword [eax]
call fcn.00498a42
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x11], 1
mov eax, dword [ebp - 0xc0]
inc dword [eax + 0x14]
test dword [esi + 4], 0x810000
jne 0x518490
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004ed94d
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004ed94d
or dword [esi + 4], 0x800000
mov dword [esi + 0x10], 0
cmp word [esi + 0x20], 0
js 0x5184b3
cmp dword [ebp - 0xc4], 0
je 0x5184b3
mov eax, esi
call fcn.004cd848
mov ecx, dword [ebp - 0xc4]
or dword [ecx + 0x38], eax
or dword [ecx + 0x3c], edx
mov al, byte [ebp - 0xe8]
dec edi
mov dword [ebp - 0xc4], 2
mov byte [esi], al
jne 0x518ebd
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
cmp dword [eax + 0x16c], 0
je 0x518579
mov bl, byte [esi]
cmp bl, 0xa7
je 0x5184f1
cmp bl, 0x4d
jne 0x518579
mov edx, dword [ebp - 0xe0]
call fcn.004e913f
test eax, eax
js 0x518579
cmp bl, 0x4d
je 0x51851a
mov edi, dword [ebp - 0xd0]
xor edx, edx
mov ecx, dword [edi + 4]
mov edi, dword [ecx]
mov dword [ebp - 0xc4], edi
jmp 0x518526
mov edi, dword [ebp - 0xbc]
mov ebx, dword [edi + 0x7c]
jmp 0x51853e
inc edx
cmp edx, dword [ebp - 0xc4]
jge 0x518579
imul ebx, edx, 0x48
mov edi, dword [ecx + ebx + 0x34]
cmp dword [esi + 0x1c], edi
jne 0x518525
mov ebx, dword [ecx + ebx + 0x18]
test ebx, ebx
je 0x518579
movsx edx, word [esi + 0x20]
test dx, dx
jns 0x518559
movsx edx, word [ebx + 0x20]
mov ecx, str.ROWID
test dx, dx
js 0x518561
shl edx, 4
add edx, dword [ebx + 4]
mov ecx, dword [edx]
mov dword [esp], eax
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebx]
call fcn.005174e1
cmp eax, 2
jne 0x518579
mov byte [esi], 0x79
mov eax, dword [ebp - 0xc0]
inc dword [eax + 0x10]
cmp dword [ebp - 0xd0], eax
je 0x5182a7
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc0], eax
jmp 0x518579
mov eax, dword [esi + 0x14]
xor edi, edi
mov dword [ebp - 0xcc], eax
test eax, eax
je 0x5185aa
mov edi, dword [eax]
mov eax, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xc0]
mov eax, dword [eax]
mov ebx, dword [ebx + 0x18]
movzx ecx, byte [eax + 0x54]
mov dword [ebp - 0xd0], ebx
xor ebx, ebx
test byte [esi + 7], 1
je 0x5185d8
mov ebx, dword [esi + 0x2c]
cmp byte [ebx + 0x10], 0xa6
jne 0x5185d8
xor ebx, ebx
mov edx, dword [esi + 8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [ebp - 0xc4], ecx
mov ecx, edi
mov dword [ebp - 0xd8], edx
call fcn.004ff993
mov edx, dword [ebp - 0xd8]
test eax, eax
mov dword [ebp - 0xc8], eax
jne 0x518656
mov eax, dword [ebp - 0xc4]
mov dword [esp + 4], 0
mov ecx, 0xfffffffe
mov dword [esp], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
call fcn.004ff993
mov dword [ebp - 0xc4], 0
cmp eax, 1
mov dword [ebp - 0xc8], eax
sbb edi, edi
inc edi
cmp eax, 1
setb al
movzx eax, al
mov dword [ebp - 0xd8], eax
jmp 0x518856
mov eax, dword [ebp - 0xc8]
cmp dword [eax + 0x14], 0
setne al
movzx eax, al
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc8]
test byte [eax + 5], 4
je 0x51873b
or dword [esi + 4], 0x80000
cmp edi, 2
jne 0x51871f
mov eax, dword [ebp - 0xcc]
fld1
fchs
mov eax, dword [eax + 0x1c]
fstp qword [ebp - 0x98]
cmp byte [eax], 0x99
je 0x5186b1
jmp 0x5186a8
fstp st(0)
mov dword [esi + 0x1c], 0xffffffff
jmp 0x5186fa
mov edi, dword [eax + 8]
mov eax, edi
call fcn.004de0c2
mov dword [esp], 1
lea edx, [ebp - 0x98]
mov ecx, eax
mov eax, edi
call fcn.004f4709
fld1
fld qword [ebp - 0x98]
fcomi st(1)
fstp st(1)
ja 0x5186a6
fmul dword [0x670f88]
fstp qword [ebp - 0xd8]
cvttsd2si eax, qword [ebp - 0xd8]
mov dword [esi + 0x1c], eax
test eax, eax
jns 0x51873b
mov eax, dword [ebp - 0xbc]
mov dword [esp + 8], esi
mov dword [esp + 4], str.second_argument_to__T___must_be_a_constant_between_0.0_and_1.0
mov dword [esp], eax
call fcn.004fa8d7
mov eax, dword [ebp - 0xc0]
inc dword [eax + 0x14]
jmp 0x51873b
mov eax, dword [ebp - 0xc8]
mov edx, 0x7800000
mov eax, dword [eax + 0x20]
cmp byte [eax], 0x75
mov eax, 0x800000
cmovne eax, edx
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp + 4], 0
xor ecx, ecx
mov edx, 0x1f
mov eax, dword [eax + 0x20]
mov dword [esp], eax
mov eax, dword [ebp - 0xbc]
call fcn.00501d3a
mov edi, eax
test eax, eax
je 0x518795
dec edi
jne 0x51878d
mov eax, dword [ebp - 0xbc]
mov dword [esp + 8], esi
mov dword [esp + 4], str.not_authorized_to_use_function:__T
mov dword [esp], eax
call fcn.004fa8d7
mov eax, dword [ebp - 0xc0]
inc dword [eax + 0x14]
mov byte [esi], 0x79
jmp 0x5182a7
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
test ah, 0x28
je 0x5187aa
or dword [esi + 4], 0x100000
mov ecx, dword [ebp - 0xc0]
bt eax, 0xb
mov edx, dword [ecx + 0x18]
jb 0x5187db
test dl, 0x2a
je 0x5187f0
mov dword [esp + 4], esi
mov eax, dword [ebp - 0xbc]
mov ecx, str.non_deterministic_functions
mov dword [esp], 0
call fcn.00504edd
jmp 0x5187f0
mov eax, edx
and eax, 0x2e
bt edx, 0x12
mov byte [esi + 2], al
jae 0x5187f0
or dword [esi + 4], 0x40000000
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
bt eax, 0x12
jae 0x518813
mov ecx, dword [ebp - 0xbc]
cmp byte [ecx + 0x12], 0
jne 0x518813
mov edx, dword [ecx]
test byte [edx + 0x18], 0x20
je 0x518842
mov dword [ebp - 0xd8], 0
test eax, 0x280000
je 0x518856
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0xd4], 1
ja 0x518856
mov ecx, dword [ebp - 0xc8]
mov edx, esi
call fcn.0050437b
jmp 0x518856
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xd8], 1
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0xd4], 1
ja 0x5189cd
cmp dword [ebp - 0xc8], 0
je 0x518893
mov eax, dword [ebp - 0xc8]
cmp dword [eax + 0x18], 0
jne 0x518893
test ebx, ebx
je 0x518893
mov dword [esp + 8], esi
mov dword [esp + 4], str._T___may_not_be_used_as_a_window_function
jmp 0x51893a
cmp dword [ebp - 0xc4], 0
je 0x518914
mov eax, dword [ebp - 0xc0]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xdc], eax
and eax, 0x10000
test dl, 1
je 0x5188d2
test ebx, ebx
jne 0x5188ca
test eax, eax
jne 0x5188e3
test ebx, ebx
je 0x518914
bt edx, 0xe
jae 0x5188e3
jmp 0x518914
or eax, ebx
mov edx, str.window
mov eax, str.aggregate
cmovne eax, edx
jmp 0x5188e8
mov eax, str.window
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xbc]
mov dword [esp + 0xc], esi
mov dword [esp], eax
mov dword [esp + 4], str.misuse_of__s_function__T__
call fcn.004fa8d7
mov eax, dword [ebp - 0xc0]
inc dword [eax + 0x14]
jmp 0x51899c
cmp dword [ebp - 0xd8], 0
je 0x51895c
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
cmp byte [eax + 0xb1], 0
jne 0x51895c
mov dword [esp + 8], esi
mov dword [esp + 4], str.no_such_function:__T
mov eax, dword [ebp - 0xbc]
mov dword [esp], eax
call fcn.004fa8d7
mov eax, dword [ebp - 0xc0]
inc dword [eax + 0x14]
cmp dword [ebp - 0xc4], 0
je 0x51899c
jmp 0x518977
test edi, edi
je 0x51896e
mov dword [esp + 8], esi
mov dword [esp + 4], str.wrong_number_of_arguments_to_function__T__
jmp 0x51893a
cmp dword [ebp - 0xc4], 0
je 0x518996
cmp ebx, 1
mov edi, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], 1
sbb eax, eax
sub eax, 0x4001
and dword [edi + 0x18], eax
jmp 0x5189e3
test byte [esi + 7], 1
jne 0x5189a8
mov dword [ebp - 0xc4], 0
jmp 0x5189e3
mov eax, dword [ebp - 0xbc]
mov dword [esp + 8], esi
mov dword [esp + 4], str.FILTER_may_not_be_used_with_non_aggregate__T__
mov dword [esp], eax
call fcn.004fa8d7
mov eax, dword [ebp - 0xc0]
inc dword [eax + 0x14]
jmp 0x5189e3
test byte [esi + 7], 1
mov eax, 1
cmove eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc4], eax
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp + 8]
call fcn.004f16e7
cmp dword [ebp - 0xc4], 0
je 0x5182a7
test ebx, ebx
je 0x518c54
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0xd4], 1
jbe 0x518a64
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 8]
call fcn.004f16e7
mov edx, dword [ebx + 0xc]
mov eax, dword [ebp + 8]
call fcn.004f16e7
mov edx, dword [ebx + 0x28]
mov eax, dword [ebp + 8]
call fcn.004f16cf
mov eax, dword [ebp - 0xcc]
mov edx, ebx
call fcn.0050ab25
mov eax, dword [ebp - 0xc0]
or dword [eax + 0x18], 0x8000
jmp 0x518d53
xor edx, edx
cmp dword [ebp - 0xcc], 0
je 0x518a78
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax + 0x48]
mov ecx, dword [ebx]
test ecx, ecx
je 0x518b0f
cmp byte [ebx + 0x10], 0
jne 0x518b0f
mov eax, dword [ebp - 0xbc]
call fcn.00502037
mov esi, eax
test eax, eax
je 0x518c3d
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xbc]
xor ecx, ecx
mov eax, dword [eax]
call fcn.004fc4a7
mov edx, dword [esi + 0xc]
xor ecx, ecx
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
call fcn.004fc4a7
mov edx, dword [esi + 0x18]
xor ecx, ecx
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
call fcn.004fca26
mov edx, dword [esi + 0x1c]
xor ecx, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
call fcn.004fca26
mov dword [ebx + 0x1c], eax
mov al, byte [esi + 0x11]
mov byte [ebx + 0x11], al
mov al, byte [esi + 0x12]
mov byte [ebx + 0x12], al
mov al, byte [esi + 0x10]
mov byte [ebx + 0x10], al
mov al, byte [esi + 0x14]
mov byte [ebx + 0x14], al
jmp 0x518b1e
mov eax, dword [ebp - 0xbc]
mov ecx, edx
mov edx, ebx
call fcn.00503f80
cmp byte [ebx + 0x10], 0x59
jne 0x518b46
cmp dword [ebx + 0x18], 0
jne 0x518b30
cmp dword [ebx + 0x1c], 0
je 0x518b46
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x518b3c
cmp dword [eax], 1
je 0x518b46
mov dword [esp + 4], str.RANGE_with_offset_PRECEDING_FOLLOWING_requires_one_ORDER_BY_expression
jmp 0x518b64
mov eax, dword [ebp - 0xc8]
test byte [eax + 6], 1
je 0x518c34
cmp dword [ebx + 0x28], 0
je 0x518b77
mov dword [esp + 4], str.FILTER_clause_may_only_be_used_with_aggregate_window_functions
mov eax, dword [ebp - 0xbc]
mov dword [esp], eax
call fcn.004fa8d7
jmp 0x518c34
mov eax, dword [ebp - 0xbc]
lea edi, [ebp - 0x98]
mov esi, 0x65f020
mov ecx, 0x20
mov eax, dword [eax]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax + 0x20]
lea eax, [ebp - 0x98]
cmp edx, dword [eax]
jne 0x518c27
mov eax, dword [ebx + 0x18]
shl esi, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004ed94d
mov eax, dword [ebx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
call fcn.004ed94d
mov eax, dword [ebp + esi - 0x94]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov byte [ebx + 0x10], al
mov eax, dword [ebp + esi - 0x90]
mov byte [ebx + 0x11], al
mov edx, dword [ebp + esi - 0x8c]
mov byte [ebx + 0x14], 0
mov byte [ebx + 0x12], dl
cmp al, 0x56
jne 0x518c34
mov eax, dword [ebp - 0xd8]
mov ecx, 0x664601
mov edx, 0x9b
call fcn.004fdada
mov dword [ebx + 0x18], eax
jmp 0x518c34
inc esi
add eax, 0x10
cmp esi, 8
jne 0x518ba8
mov eax, dword [ebp - 0xc8]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
je 0x518a24
jmp case.0x51760b.1
mov byte [esi], 0xa8
mov byte [esi + 2], 0
test byte [esi + 7], 1
je 0x518c6f
mov eax, dword [esi + 0x2c]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp + 8]
call fcn.004f16cf
mov ebx, dword [ebp - 0xc0]
xor eax, eax
mov ecx, 6
lea edi, [ebp - 0x98]
mov edx, dword [ebx + 4]
rep stosd dword es:[edi], eax
mov ecx, 4
lea edi, [ebp - 0xa8]
mov dword [ebp - 0x94], 0x4e83d5
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x90], 0x4feb6e
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x8c], 0x4cf6ac
mov eax, dword [eax]
mov dword [ebp - 0xac], edx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x98]
call fcn.004f16e7
test byte [esi + 7], 1
je 0x518cf4
mov eax, dword [esi + 0x2c]
mov edx, dword [eax + 0x28]
lea eax, [ebp - 0x98]
call fcn.004f16cf
mov edx, dword [ebp - 0xa0]
test edx, edx
je 0x518d0b
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
call fcn.004e3686
mov eax, dword [ebp - 0x84]
test al, 1
jne 0x518d2a
test ax, ax
je 0x518d2a
inc byte [esi + 2]
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x518c75
jmp 0x518d53
test ebx, ebx
je 0x518d53
cmp dword [ebp - 0xc8], 0
je 0x518d53
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
xor eax, 0x8000000
and eax, 0x8001000
or eax, dword [ebx + 0x18]
or eax, 0x10
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xc0]
and eax, 0x4001
or dword [edi + 0x18], eax
jmp 0x518ebd
test byte [esi + 5], 0x10
je case.0x51760b.1
mov eax, dword [ebp - 0xc0]
mov edx, dword [eax + 0x18]
mov ebx, dword [eax + 0x10]
test dl, 0x2e
je 0x518da0
mov dword [esp + 4], esi
mov eax, dword [ebp - 0xbc]
mov ecx, str.subqueries
mov dword [esp], esi
call fcn.00504edd
jmp 0x518dab
mov edx, dword [esi + 0x14]
mov eax, dword [ebp + 8]
call fcn.004f1336
mov eax, dword [ebp - 0xc0]
cmp dword [eax + 0x10], ebx
je case.0x51760b.1
or dword [esi + 4], 0x40
or dword [eax + 0x18], 0x40
jmp case.0x51760b.1
mov eax, dword [ebp - 0xc0]
mov edx, dword [eax + 0x18]
test dl, 0x2e
je case.0x51760b.1
mov dword [esp + 4], esi
mov eax, dword [ebp - 0xbc]
mov ecx, str.parameters
mov dword [esp], esi
call fcn.00504edd
jmp case.0x51760b.1
mov eax, dword [esi + 0x10]
call fcn.004cddbb
mov ebx, eax
test eax, eax
je case.0x51760b.3
mov al, byte [eax]
cmp al, 0x3b
je 0x518e0d
cmp al, 0xaa
jne case.0x51760b.3
mov eax, dword [ebp + 8]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.005175ca
cmp eax, 2
je 0x518eb3
cmp byte [ebx], 0xaa
jne case.0x51760b.3
mov dword [ebp - 0xc4], 0
mov al, byte [esi]
mov byte [esi], 0xaf
mov byte [esi + 2], al
jmp 0x518ebd
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne case.0x51760b.1
mov eax, dword [esi + 0xc]
call fcn.004cdfa8
cmp byte [esi], 0x30
mov ebx, eax
jne 0x518e6f
mov edi, dword [esi + 0x14]
mov eax, dword [edi + 8]
call fcn.004cdfa8
cmp ebx, eax
jne 0x518e7b
mov eax, dword [edi + 0x1c]
jmp 0x518e72
mov eax, dword [esi + 0x10]
call fcn.004cdfa8
cmp eax, ebx
je case.0x51760b.1
mov eax, dword [ebp - 0xbc]
mov dword [esp + 4], str.row_value_misused
mov dword [esp], eax
call fcn.004fa8d7
mov eax, dword [ebp - 0xbc]
mov edx, esi
mov eax, dword [eax]
call fcn.00498a42
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x518ebd
mov dword [ebp - 0xc4], 2
mov eax, dword [ebp - 0xc4]
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret