Function at 0x494230
Capabilities:
Authenticate hmac
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xd0], 0xffffffff
test edx, edx
je case.0x4942a7.21
mov esi, edx
jmp 0x494297
mov esi, dword [esi + 0xc]
test esi, esi
je case.0x4942a7.21
movzx ebx, byte [esi]
movzx edx, bl
lea eax, [edx - 0x13]
cmp eax, 0xa2
ja case.0x4942a7.21
jmp dword [eax*4 + 0x528210]
test byte [esi + 5], 2
jne case.0x4942a7.174
mov edx, dword [esi + 0xc]
test edx, edx
je case.0x4942a7.174
cmp byte [edx], 0xac
jne case.0x4942a7.174
mov ecx, dword [esp + 0xc]
mov edi, dword [ebp + 8]
push edi
call fcn.00494230
add esp, 4
cmp eax, edi
je 0x4942e7
mov ecx, dword [esp + 0x10]
mov edx, 0x51
push edi
push eax
call fcn.00474720
add esp, 8
mov ecx, dword [esp + 0x10]
mov edx, 0xb3
jmp 0x494d0b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x494338
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x4b
mov dword [ecx + eax*4 + 4], 0
mov edi, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49623e
mov edx, 0x4b
push 0
mov edi, dword [ebp + 8]
push edi
push 0
call fcn.004747e0
add esp, 0xc
jmp 0x49623e
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x38]
mov edi, dword [esp + 0xc]
mov ecx, edi
push eax
call fcn.00496ce0
add esp, 4
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.00496ce0
add esp, 4
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x4943e6
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [esp + 0x14]
mov dword [edx + ecx*4 + 8], eax
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
mov edi, dword [esp + 0xc]
jmp 0x4961fc
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
jmp 0x4944c8
mov edx, dword [esp + 0x24]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ebx
push ebx
push dword [esp + 0x18]
push eax
call fcn.004747e0
add esp, 0xc
mov edi, dword [esp + 0xc]
jmp 0x4961fc
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x38]
mov edi, dword [esp + 0xc]
mov ecx, edi
push eax
call fcn.00496ce0
add esp, 4
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x494f3f
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ebx
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
jmp 0x4961fc
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
xor edi, edi
cmp byte [eax + 0x57], 0
jne 0x49623e
cmp bl, 0x8a
jne 0x49449f
test byte [esi + 5], 0x10
je 0x49449f
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jne 0x496248
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.00497a80
jmp 0x496240
xor edx, edx
cmp bl, 0x2d
sete dl
or edx, 0x34
mov dword [esp + 0x40], 0x80
mov al, 1
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x18], eax
movzx eax, byte [eax]
mov ecx, eax
cmp al, 0xb0
mov edi, dword [ebp + 8]
mov dword [esp + 0x20], edi
jne 0x4944e7
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + 2]
cmp cl, 0x8a
mov edi, dword [esp + 0xc]
je 0x494504
movzx ecx, cl
cmp ecx, 0xb1
jne 0x494515
mov ecx, dword [esp + 0x18]
add ecx, 0x14
jmp 0x49450e
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
cmp dword [ecx], 2
jge 0x494584
mov dword [esp + 0x24], edx
lea eax, [esp + 0x38]
mov ecx, edi
mov edx, dword [esp + 0x18]
push eax
call fcn.00496ce0
add esp, 4
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.00496ce0
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x4945ba
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [edx + eax*4], 0x47
mov dword [edx + eax*4 + 4], 1
mov ebx, dword [ebp + 8]
mov dword [edx + eax*4 + 8], ebx
mov dword [edx + eax*4 + 0xc], 0
mov dword [edx + eax*4 + 0x10], 0
jmp 0x4945d2
cmp al, 0xb0
jne 0x494590
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
cmp al, 0x8a
je 0x49507d
movzx eax, al
mov dword [esp + 0x48], 1
cmp eax, 0xb1
jne 0x49508f
mov eax, dword [esp + 0x18]
add eax, 0x14
jmp 0x495087
mov edx, 0x47
push 0
push dword [ebp + 8]
push 1
call fcn.004747e0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esi + 4]
mov ebx, dword [ecx + 0x6c]
add ebx, 2
shr eax, 0xa
and eax, 1
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
push eax
push dword [esp + 0x44]
push ebx
push edi
mov ebx, dword [esp + 0x24]
push ebx
push dword [esp + 0x38]
push dword [esi + 0x10]
call fcn.00496e00
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
mov eax, dword [ecx + 0x6c]
mov edx, dword [ecx + 0x70]
cmp byte [esp + 0x44], 0
je 0x494649
cmp edx, eax
jle 0x4946d1
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x47
mov dword [ecx + eax*4 + 4], 0
mov edx, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
jmp 0x494673
cmp edx, eax
jle 0x4946e2
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov ecx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x5c
mov dword [ecx + eax*4 + 4], ebx
mov edx, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], edi
mov dword [ecx + eax*4 + 0x10], 0
mov edi, dword [esp + 0xc]
jmp 0x4961fc
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x494f5b
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov edi, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [edi + eax*4], 0x47
mov dword [edi + eax*4 + 4], 1
mov edx, dword [ebp + 8]
mov dword [edi + eax*4 + 8], edx
mov dword [edi + eax*4 + 0xc], 0
mov dword [edi + eax*4 + 0x10], 0
mov edi, ecx
jmp 0x494f71
mov edx, 0x47
push 0
push dword [ebp + 8]
push 0
jmp 0x4943f7
mov edx, 0x5c
push edi
push dword [ebp + 8]
push ebx
jmp 0x4943f7
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0xc]
mov edi, dword [ebp + 8]
push edi
call fcn.00494230
add esp, 4
cmp eax, edi
je 0x49471b
mov ecx, dword [esp + 0x10]
mov edx, 0x51
push edi
push eax
call fcn.00474720
add esp, 8
mov eax, dword [esi + 8]
movzx ebx, byte [eax]
test bl, bl
je 0x495402
inc eax
xor ecx, ecx
mov dl, 0x43
jmp 0x49474e
cmp ecx, 0x626c6f62
je 0x49477b
cmp ecx, 0x63686172
jne 0x49478a
movzx ebx, byte [eax]
inc eax
mov dl, dh
test bl, bl
je 0x495404
mov esi, ecx
shl esi, 8
movzx ecx, bl
movzx ecx, byte [ecx + 0x52a853]
or ecx, esi
mov dh, 0x42
cmp ecx, 0x636c6f61
jle 0x494730
cmp ecx, 0x636c6f62
je 0x494740
cmp ecx, 0x74657874
je 0x494740
jmp 0x49478a
mov dh, 0x41
cmp dl, 0x43
je 0x494740
movzx esi, dl
cmp esi, 0x45
je 0x494740
cmp ecx, 0x7265616c
sete byte [esp + 0xc]
cmp dl, 0x43
sete bl
cmp ecx, 0x666c6f61
sete bh
cmp ecx, 0x646f7562
sete byte [esp + 0x14]
mov dh, 0x45
test byte [esp + 0xc], bl
jne 0x494740
and bh, bl
jne 0x494740
and byte [esp + 0x14], bl
jne 0x494740
mov esi, ecx
and esi, 0xffffff
mov dh, dl
cmp esi, 0x696e74
jne 0x494740
mov dh, 0x44
jmp 0x495404
mov ecx, dword [esp + 0xc]
mov edx, esi
push 0
push 0
mov edi, dword [ebp + 8]
push edi
call fcn.00498db0
add esp, 0xc
jmp 0x49623e
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x38]
lea ebx, [ecx - 1]
mov dword [esp + 0x1c], ecx
add ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
mov dword [eax + 0x38], ecx
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x495141
lea edx, [eax + 1]
mov dword [edi + 0x6c], edx
mov dword [esp + 0x18], ebx
mov ebx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ebx + eax*4], 0x4b
mov dword [ebx + eax*4 + 4], 0
mov edx, dword [ebp + 8]
mov dword [ebx + eax*4 + 8], edx
mov dword [ebx + eax*4 + 0xc], 0
mov dword [ebx + eax*4 + 0x10], 0
mov ebx, dword [esp + 0x18]
jmp 0x495157
mov edi, dword [esp + 0xc]
cmp dword [edi + 0x78], 0
jne 0x494878
cmp byte [edi + 0x12], 0
je 0x4961a9
movzx eax, byte [esi + 1]
cmp al, 2
jne 0x494890
mov eax, dword [edi + 0x74]
test eax, eax
cmove eax, edi
mov byte [eax + 0x15], 1
movzx eax, byte [esi + 1]
cmp al, 4
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
jne 0x4953d7
mov edx, 0x46
push 0
push dword [esi + 8]
push 0
push 4
push 0
call fcn.00493a50
add esp, 0x14
jmp 0x4961fc
mov ebx, dword [esi + 0x2c]
movsx eax, word [ebx + 0x22]
inc eax
imul eax, dword [esi + 0x1c]
movsx esi, word [esi + 0x20]
inc eax
mov edx, esi
test esi, esi
js 0x495e41
mov ecx, dword [ebx + 0x1c]
mov edx, esi
and ecx, 0x20
je 0x495e41
xor ecx, ecx
mov dword [esp + 0x1c], ebx
mov edi, dword [ebx + 4]
test si, si
mov dword [esp + 0x14], edi
je 0x495e1d
mov edx, 0
cmp si, 0x11
jb 0x494a61
mov ecx, esi
and ecx, 0xf
mov edx, 0x10
cmovne edx, ecx
mov ecx, esi
sub ecx, edx
lea ebx, [edi + 0xbe]
pxor xmm0, xmm0
movdqa xmm3, xmmword [0x5281c0]
mov dword [esp + 0x18], ecx
mov edx, ecx
pxor xmm1, xmm1
movzx ecx, word [ebx - 0x60]
movd xmm4, ecx
movzx ecx, word [ebx - 0x6c]
movd xmm6, ecx
punpcklwd xmm6, xmm4
movzx ecx, word [ebx - 0x78]
movd xmm4, ecx
movzx ecx, word [ebx - 0x84]
movd xmm5, ecx
punpcklwd xmm5, xmm4
punpckldq xmm5, xmm6
movzx ecx, word [ebx - 0x90]
movd xmm4, ecx
movzx ecx, word [ebx - 0x9c]
movd xmm6, ecx
punpcklwd xmm6, xmm4
movzx ecx, word [ebx - 0xa8]
movd xmm7, ecx
movzx ecx, word [ebx - 0xb4]
movd xmm4, ecx
punpcklwd xmm4, xmm7
punpckldq xmm4, xmm6
punpcklqdq xmm4, xmm5
movzx ecx, word [ebx]
movd xmm5, ecx
movzx ecx, word [ebx - 0xc]
movd xmm7, ecx
punpcklwd xmm7, xmm5
movzx ecx, word [ebx - 0x18]
movd xmm5, ecx
movzx ecx, word [ebx - 0x24]
movd xmm6, ecx
punpcklwd xmm6, xmm5
punpckldq xmm6, xmm7
movzx ecx, word [ebx - 0x30]
movd xmm5, ecx
movzx ecx, word [ebx - 0x3c]
movd xmm7, ecx
punpcklwd xmm7, xmm5
movzx ecx, word [ebx - 0x48]
movd xmm2, ecx
movzx ecx, word [ebx - 0x54]
movd xmm5, ecx
punpcklwd xmm5, xmm2
punpckldq xmm5, xmm7
punpcklqdq xmm5, xmm6
pcmpeqd xmm2, xmm2
pxor xmm4, xmm2
psrlw xmm4, 5
pand xmm4, xmm3
paddw xmm0, xmm4
pxor xmm5, xmm2
psrlw xmm5, 5
pand xmm5, xmm3
paddw xmm1, xmm5
add ebx, 0xc0
add edx, 0xfffffff0
jne 0x49493b
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd edx, xmm0
mov ecx, dword [esp + 0x18]
mov ebx, esi
sub ebx, ecx
lea ecx, [ecx + ecx*2]
lea ecx, [edi + ecx*4]
add ecx, 0xa
movzx edi, word [ecx]
bt edi, 5
sbb dx, 0xffff
add ecx, 0xc
dec ebx
jne 0x494a6e
jmp 0x495e1f
mov ecx, dword [esp + 0x10]
mov edx, 0x75
push 0
push dword [esi + 8]
push 0
mov edi, dword [ebp + 8]
jmp 0x494b07
mov esi, dword [esi + 8]
test esi, esi
je 0x494d68
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x60], 0xffffffff
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
lea edx, [esp + 0x60]
mov ecx, esi
push 1
push eax
call fcn.004565e0
add esp, 8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, 8
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
mov edi, dword [ebp + 8]
je 0x494af9
movq xmm0, qword [esp + 0x60]
movq qword [eax], xmm0
mov ecx, dword [esp + 0x10]
mov edx, 0x99
push 0xfffffffffffffff4
push eax
push 0
push edi
push 0
jmp 0x495def
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
add eax, 2
mov dword [esp + 0x14], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
lea edx, [eax - 1]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
shr edx, 0x1f
mov dword [esp + 0x18], eax
lea esi, [eax + edx]
dec esi
sar esi, 1
lea edx, [esi + 1]
push 0
call fcn.0043f5f0
add esp, 4
mov edi, eax
test eax, eax
mov ebx, dword [ebp + 8]
je 0x496183
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], esi
xor eax, eax
mov ecx, dword [esp + 0x18]
cmp ecx, 3
jb 0x496177
lea edx, [ecx - 3]
xor eax, eax
cmp edx, 0x1e
jae 0x495ed3
mov ebx, dword [esp + 0xc]
jmp 0x496126
mov ecx, dword [esp + 0xc]
mov edx, esi
mov edi, dword [ebp + 8]
push edi
push 0
jmp 0x494e38
movsx eax, word [esi + 0x20]
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edi
jle 0x4951af
lea edx, [edi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [edi + edi*4]
mov dword [edx + ecx*4], 0x4e
mov dword [edx + ecx*4 + 4], eax
mov ebx, dword [ebp + 8]
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4951c3
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
mov dword [esp + 0x90], 0xffffffff
mov edi, dword [esp + 0xc]
mov ebx, dword [edi]
mov eax, dword [edi + 0x38]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x34], ecx
mov ecx, dword [ecx]
dec eax
mov dword [esp + 0x30], eax
mov dword [edi + 0x38], eax
mov edx, dword [esi + 0xc]
test edx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
je 0x495457
mov ecx, ebx
push 0
push 0
call fcn.0049d550
add esp, 8
mov edx, eax
cmp byte [ebx + 0x57], 0
je 0x495b5f
test edx, edx
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
je 0x4961fc
mov ecx, ebx
call fcn.00469350
jmp 0x4961fc
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4950ea
movsx ecx, word [esi + 0x22]
test ecx, ecx
js 0x4950ea
cmp dword [eax + 0x2c], ecx
jle 0x4950ea
mov eax, dword [eax + 0x28]
lea ecx, [ecx + ecx*4]
mov edi, dword [eax + ecx*4 + 8]
jmp 0x49623e
mov eax, dword [esi + 0x28]
mov edi, dword [eax + 0x1c]
movsx ecx, word [esi + 0x22]
lea ebx, [ecx + ecx*4]
cmp byte [eax], 0
je 0x495470
cmp byte [eax + 1], 0
je case.0x4942a7.167
lea ecx, [edi + ebx*4]
mov ecx, dword [ecx]
mov dword [esp + 0x14], ecx
movsx ecx, word [edi + ebx*4 + 0x12]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x10]
mov edx, 0x5e
mov esi, dword [ebp + 8]
push esi
push dword [esp + 0x10]
push dword [eax + 8]
call fcn.00474780
add esp, 0xc
movzx eax, word [edi + ebx*4 + 0x10]
test ax, ax
js 0x4961a2
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*2]
cmp byte [ecx + eax*4 + 5], 0x45
jne 0x494d68
mov ecx, dword [esp + 0x10]
mov edx, 0x57
mov edi, dword [ebp + 8]
push edi
call fcn.004939f0
add esp, 4
jmp 0x49623e
test byte [esi + 4], 0x20
jne 0x4950f9
mov ebx, dword [esi + 0x1c]
test ebx, ebx
jns 0x494d3a
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x34]
test ebx, ebx
js 0x496265
dec ebx
mov edx, dword [esi + 0x2c]
movsx eax, word [esi + 0x20]
movzx edi, byte [esi + 2]
mov ecx, dword [esp + 0xc]
push edi
mov edi, dword [ebp + 8]
push edi
push ebx
push eax
call fcn.00496970
add esp, 0x10
cmp dword [esi + 0x2c], 0
jne 0x49623e
cmp byte [esi + 1], 0x45
je 0x494cff
mov edi, dword [ebp + 8]
jmp 0x49623e
test byte [esi + 5], 0x20
jne 0x495206
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
jmp 0x495216
test byte [esi + 7], 1
jne 0x49524e
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
movzx ebx, byte [eax + 0x54]
cmp byte [edi + 0x17], 0
je 0x495b47
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov word [esp + 0x74], 2
mov dword [esp + 0x64], 0x499e30
mov dword [esp + 0x68], 0x499fa0
mov dword [esp + 0x78], 0
lea ecx, [esp + 0x60]
mov edx, esi
call fcn.00499fb0
cmp word [esp + 0x74], 0
je 0x495b47
mov ecx, edi
mov edx, esi
push 0xffffffffffffffff
call fcn.00496f00
add esp, 4
jmp 0x496240
mov edx, dword [esi + 0xc]
movzx eax, byte [edx]
cmp eax, 0x99
je 0x495534
cmp eax, 0x9b
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
jne 0x49554e
mov ecx, dword [esp + 0xc]
mov edi, dword [ebp + 8]
push edi
push 1
call fcn.004969d0
add esp, 8
jmp 0x49623e
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0xc]
push eax
call fcn.00496ce0
add esp, 4
mov edx, dword [esi + 0x10]
test byte [edx + 5], 0x20
jne 0x495259
mov edi, dword [esp + 0x10]
jmp 0x495266
mov edi, dword [esi + 0x1c]
jmp 0x49623e
push str.row_value_misused
mov edi, dword [esp + 0x10]
push edi
call fcn.00434540
add esp, 8
jmp 0x4961f5
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x494ea5
movzx ecx, byte [edi + 2]
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x1a], cl
jbe 0x494ebc
mov ebx, dword [esp + 0xc]
mov ecx, ebx
mov edx, edi
call fcn.00497a80
mov dword [edi + 0x1c], eax
movzx ecx, byte [ebx + 0x1a]
mov byte [edi + 2], cl
mov edx, dword [edi]
cmp dl, 0xb0
movzx ecx, cl
cmovne ecx, edx
cmp cl, 0x8a
je 0x4955b5
movzx edx, cl
mov ecx, 1
cmp edx, 0xb1
jne 0x4955bf
lea ecx, [edi + 0x14]
jmp 0x4955bb
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x17]
mov ebx, dword [esi + 0x1c]
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edi
mov byte [esp + 0x14], al
jle 0x4952c3
lea edx, [edi + 1]
mov dword [ecx + 0x6c], edx
mov eax, dword [ecx + 0x68]
lea edx, [edi + edi*4]
mov dword [eax + edx*4], 0x12
mov dword [eax + edx*4 + 4], ebx
mov dword [eax + edx*4 + 8], 0
mov dword [eax + edx*4 + 0xc], 0
mov dword [eax + edx*4 + 0x10], 0
jmp 0x4952d7
mov edx, dword [esp + 0x24]
push 0
mov ebx, dword [ebp + 8]
mov dword [esp + 0x24], ebx
push ebx
push eax
call fcn.004747e0
add esp, 0xc
jmp 0x4961fc
mov edi, ecx
mov edx, 0x47
push 0
push dword [ebp + 8]
push 1
call fcn.004747e0
add esp, 0xc
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0xc]
push eax
call fcn.00496ce0
add esp, 4
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
mov ecx, edi
jle 0x494fd6
mov dword [esp + 0x1c], eax
mov eax, edx
inc edx
mov dword [ecx + 0x6c], edx
mov esi, dword [ecx + 0x68]
mov edi, ecx
mov dword [esp + 0x14], eax
lea edx, [eax + eax*4]
mov byte [esi + edx*4], bl
mov word [esi + edx*4 + 2], 0
mov eax, dword [esp + 0x1c]
mov dword [esi + edx*4 + 4], eax
mov dword [esi + edx*4 + 8], 0
mov dword [esi + edx*4 + 0xc], 0
mov dword [esi + edx*4 + 0x10], 0
mov byte [esi + edx*4 + 1], 0
jmp 0x494fed
mov edi, ecx
mov edx, dword [esp + 0x24]
push 0
push 0
push eax
call fcn.004747e0
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
mov ecx, edi
jle 0x495032
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea eax, [eax + eax*4]
mov dword [edx + eax*4], 0x47
mov dword [edx + eax*4 + 4], 0
mov esi, dword [ebp + 8]
mov dword [edx + eax*4 + 8], esi
mov dword [edx + eax*4 + 0xc], 0
mov dword [edx + eax*4 + 0x10], 0
jmp 0x49504a
mov edx, 0x47
push 0
push dword [ebp + 8]
push 0
call fcn.004747e0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edi, ecx
mov edx, dword [ecx]
mov eax, dword [ecx + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
jne 0x495071
lea ecx, [eax - 1]
mov edx, dword [esp + 0x14]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
mov dword [ecx + 8], eax
mov edi, dword [esp + 0xc]
jmp 0x4961fc
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x38], eax
cmp dword [edi + 0x24], 0
jne 0x4961fc
mov dword [esp + 0x3c], ecx
movzx ebx, byte [ecx]
mov ecx, ebx
cmp bl, 0xb0
jne 0x4950b9
mov ecx, dword [esp + 0x3c]
movzx ecx, byte [ecx + 2]
mov dword [esp + 0x34], eax
cmp cl, 0x8a
je 0x4955e7
mov eax, edx
movzx edx, cl
mov ecx, 1
cmp edx, 0xb1
mov edx, eax
jne 0x4955f5
mov eax, dword [esp + 0x3c]
lea ecx, [eax + 0x14]
jmp 0x4955f1
push esi
push str.misuse_of_aggregate:__T__
mov edi, dword [esp + 0x14]
jmp 0x4961ec
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0xc]
push dword [ebp + 8]
call fcn.00494230
add esp, 4
mov edi, eax
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x495dc8
movsx edx, word [esi + 0x20]
mov al, 0x44
test edx, edx
js 0x495dd4
cmp word [ecx + 0x22], dx
jle 0x495dd4
mov eax, dword [ecx + 4]
lea ecx, [edx + edx*2]
lea esi, [eax + ecx*4]
add esi, 5
jmp 0x495dc9
mov ecx, edi
mov edx, 0x4b
push 0
push dword [ebp + 8]
push 0
call fcn.004747e0
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, esi
push dword [esp + 0x14]
push ebx
call fcn.00498040
add esp, 8
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
mov ebx, edi
jle 0x49535b
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x47
mov dword [ecx + eax*4 + 4], 1
mov esi, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], esi
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x495376
mov edx, 0x4e
push 0
mov ebx, dword [ebp + 8]
push ebx
push eax
call fcn.004747e0
add esp, 0xc
mov eax, dword [esi + 8]
cmp byte [eax + 1], 0
mov eax, dword [esp + 0xc]
je 0x495479
mov eax, dword [eax + 0xe0]
xor edx, edx
test eax, eax
je 0x495e02
movsx ecx, word [esi + 0x20]
mov edi, dword [eax + 4]
mov esi, 2
cmp dword [eax + esi*4], ecx
je 0x495dfc
add esi, dword [eax + esi*4 + 4]
cmp esi, edi
jl 0x4951f0
jmp 0x495e02
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
mov esi, dword [esi + 0xc]
test byte [esi + 5], 0x20
jne 0x49520d
mov edx, dword [esi + 8]
xor eax, eax
cmp byte [edx + 4], 0
sete al
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x49539b
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x47
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], edi
jmp 0x495431
mov eax, dword [esi + 0x2c]
mov edi, dword [eax + 0x38]
jmp 0x49623e
mov edi, dword [esp + 0x10]
mov edx, dword [edx + 0xc]
test byte [edx + 5], 0x20
jne 0x49525d
mov edx, dword [edx + 8]
xor ebx, ebx
cmp byte [edx + 4], 0
sete byte [esp + 0x14]
setne bl
cmp byte [esi + 2], 0x2d
sete byte [esp + 0x1c]
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jle 0x4953a9
lea edx, [esi + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
mov ecx, esi
lea esi, [esi + esi*4]
mov dword [edx + esi*4], 0x5b
mov dword [edx + esi*4 + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov dword [edx + esi*4 + 8], eax
mov dword [edx + esi*4 + 0xc], ebx
mov dword [edx + esi*4 + 0x10], 0
mov eax, ecx
jmp 0x4953c2
mov edx, 0x12
push 0
push 0
push ebx
call fcn.004747e0
add esp, 0xc
mov edi, eax
mov ebx, dword [esp + 0xc]
mov byte [ebx + 0x17], 0
mov edx, dword [esi + 0xc]
mov ecx, ebx
push dword [ebp + 8]
call fcn.00494230
add esp, 4
movzx ecx, byte [esp + 0x14]
mov byte [ebx + 0x17], cl
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
mov edx, dword [edx + 0x6c]
cmp byte [ecx + 0x57], 0
mov ecx, 0x53e0e4
jne 0x495320
lea ecx, [edx - 1]
test edi, edi
cmovns ecx, edi
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov esi, dword [esp + 0x10]
add ecx, dword [esi + 0x68]
mov dword [ecx + 8], edx
test edi, edi
mov edx, dword [esp + 0x10]
jns 0x49532f
mov edi, dword [edx + 0x6c]
dec edi
mov ecx, dword [edx]
mov esi, edx
mov edx, 0x53e0e4
cmp byte [ecx + 0x57], 0
mov dword [esp + 0x20], eax
jne 0x49534b
lea edx, [edi + edi*4]
shl edx, 2
add edx, dword [esi + 0x68]
mov eax, dword [esp + 0x20]
mov dword [edx + 0xc], eax
mov edi, dword [esp + 0xc]
jmp 0x4961fc
mov ecx, ebx
mov edx, 0x47
push 0
mov esi, dword [ebp + 8]
push esi
push 1
call fcn.004747e0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0xc]
mov eax, edi
neg eax
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x495480
mov edx, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
jmp 0x49548b
mov edx, 0x47
push 0
push edi
push eax
jmp 0x494345
mov ecx, edi
mov edx, 0x5b
push ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x24], ebx
push ebx
push eax
call fcn.004747e0
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x4954fe
mov edi, dword [esp + 0xc]
jmp 0x4961fc
movsx eax, al
cmp dword [edi + 0x78], 0
mov ecx, 1
mov edx, 0x713
cmove edx, ecx
mov ecx, edi
push 0
push 0
push dword [esi + 8]
push eax
call fcn.004995d0
add esp, 0x10
jmp 0x4961fc
mov dh, 0x43
movsx eax, dh
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x495446
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x58
mov edi, dword [ebp + 8]
mov dword [edx + ecx*4 + 4], edi
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x49623e
mov edx, 0x58
push 0
push eax
mov edi, dword [ebp + 8]
push edi
jmp 0x494345
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x40], 0
jmp 0x495bc6
mov edi, dword [edi + ebx*4 + 0xc]
jmp 0x49623e
mov edi, ebx
jmp 0x49623e
mov edx, ebx
push eax
call fcn.0049d4a0
add esp, 4
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x4954c4
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x56
mov dword [ecx + eax*4 + 4], esi
mov dword [ecx + eax*4 + 8], 0
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4954dc
mov ecx, ebx
mov edx, 0x56
push 0
push 0
push esi
call fcn.004747e0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [ebx + 0xc]
mov eax, 1
sub eax, edi
mov edi, dword [ecx + 0x38]
add edi, dword [ecx + 0x3c]
js 0x495522
mov edx, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
mov edi, esi
jmp 0x49623e
movzx ecx, byte [esp + 0x14]
xor cl, byte [esp + 0x1c]
movzx esi, cl
mov edx, dword [edi + 0x68]
lea ecx, [eax + eax*4]
mov byte [edx + ecx*4 + 1], 0xfd
mov dword [edx + ecx*4 + 0x10], esi
mov edi, dword [esp + 0xc]
jmp 0x4961fc
mov edx, ebx
push eax
call fcn.0049d4a0
add esp, 4
mov edi, esi
jmp 0x49623e
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x10]
mov edi, dword [ebp + 8]
push edi
push 1
call fcn.00496c40
add esp, 8
jmp 0x49623e
mov byte [esp + 0xa0], 0x9b
mov dword [esp + 0xa4], 0x10800
mov dword [esp + 0xa8], 0
lea eax, [esp + 0x38]
lea edx, [esp + 0xa0]
mov edi, dword [esp + 0xc]
mov ecx, edi
push eax
call fcn.00496ce0
add esp, 4
mov ebx, eax
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.00496ce0
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, 0x6b
push dword [ebp + 8]
push ebx
push eax
call fcn.00474780
add esp, 0xc
jmp 0x4961fc
mov ecx, dword [edi + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
je 0x4955dc
push ecx
push edx
push str._d_columns_assigned__d_values
push dword [esp + 0x18]
call fcn.00434540
add esp, 0x10
mov eax, dword [edi + 0x1c]
movsx edi, word [esi + 0x20]
add edi, eax
jmp 0x49623e
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp dword [esp + 0x48], ecx
jne 0x495acd
mov eax, dword [esi + 4]
mov dword [esp + 0x50], eax
cmp dl, 0x37
movzx eax, dl
mov ecx, 0x38
mov dword [esp + 0x98], eax
cmovne ecx, eax
cmp dl, 0x39
mov eax, edx
mov edx, 0x36
cmovne edx, ecx
mov dword [esp + 0x24], eax
cmp al, 0x34
mov eax, 0x35
cmovne eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], 0
mov edx, dword [esp + 0x18]
cmp byte [edx], 0x8a
mov dword [esp + 0x54], 0
mov esi, dword [esp + 0x3c]
jne 0x495665
mov ecx, edi
call fcn.00497a80
mov dword [esp + 0x54], eax
movzx ebx, byte [esi]
shr dword [esp + 0x50], 0xa
cmp bl, 0x8a
jne 0x49567c
mov ecx, edi
mov edx, esi
call fcn.00497a80
mov dword [esp + 0x58], eax
and dword [esp + 0x50], 1
mov esi, dword [esp + 0x10]
mov ecx, esi
mov edx, 0x47
push dword [ebp + 8]
push 1
call fcn.00474720
mov edx, esi
add esp, 8
mov eax, dword [esp + 0x48]
lea ecx, [eax - 1]
mov dword [esp + 0x9c], ecx
neg eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0
xor ebx, ebx
mov esi, dword [esp + 0x18]
jmp 0x49571e
lea ecx, [eax + 1]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov ebx, dword [esp + 0x34]
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
cmp edi, 0xfffffffe
mov eax, dword [esp + 0x2c]
cmove eax, dword [esp + 0x98]
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x30]
inc dword [esp + 0x1c]
add dword [esp + 0x28], 0x10
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
test ebx, ebx
je 0x495762
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
mov ecx, 0x53e0e4
cmp byte [edx + 0x57], 0
mov edx, dword [esp + 0x10]
jne 0x49575f
lea ecx, [eax - 1]
test ebx, ebx
cmovns ecx, ebx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
movzx eax, byte [esi]
cmp eax, 0x8a
je 0x4957a3
cmp eax, 0xb1
je 0x4957c2
mov dword [esp + 0x2c], 0
mov ebx, 0
cmp eax, 0xb0
jne 0x495805
movzx eax, byte [esi + 2]
cmp eax, 0xb1
je 0x4957e8
mov ecx, esi
cmp eax, 0x8a
jne 0x4957fa
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
jmp 0x4957eb
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + ecx + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
lea ebx, [ecx + eax]
jmp 0x495805
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + ecx + 8]
mov ecx, edi
mov dword [esp + 0x2c], edx
lea eax, [esp + 0x60]
push eax
call fcn.00496ce0
mov edx, dword [esp + 0x14]
add esp, 4
mov ebx, eax
jmp 0x495805
mov eax, dword [esi + 0x14]
cmp dword [eax], 2
mov ecx, esi
jl 0x4957fa
mov ecx, dword [esp + 0x28]
mov ecx, dword [eax + ecx + 8]
mov dword [esp + 0x2c], ecx
mov ebx, dword [esi + 0x1c]
add ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx]
cmp eax, 0x8a
je 0x495848
cmp eax, 0xb1
je 0x495863
xor edi, edi
mov esi, 0
cmp eax, 0xb0
jne 0x4958a2
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx + 2]
cmp eax, 0xb1
je 0x495889
mov edi, ecx
cmp eax, 0x8a
jne 0x49589b
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
jmp 0x49588c
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0x28]
mov edi, dword [eax + ecx + 8]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + eax]
jmp 0x4958a2
mov eax, dword [ecx + 0x14]
mov ecx, dword [esp + 0x28]
mov edi, dword [eax + ecx + 8]
mov ecx, dword [esp + 0xc]
mov edx, edi
lea eax, [esp + 0x5c]
push eax
call fcn.00496ce0
mov edx, dword [esp + 0x14]
add esp, 4
mov esi, eax
jmp 0x4958a2
mov eax, dword [ecx + 0x14]
cmp dword [eax], 2
mov edi, ecx
jl 0x49589b
mov esi, dword [esp + 0x28]
mov edi, dword [eax + esi + 8]
mov esi, dword [ecx + 0x1c]
add esi, dword [esp + 0x1c]
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
push dword [esp + 0x50]
push dword [esp + 0x44]
push dword [esp + 0x3c]
push esi
push ebx
mov dword [esp + 0x40], eax
push eax
push edi
mov edi, ecx
call fcn.00496e00
add esp, 0x1c
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4958f3
movzx ecx, byte [edi + 0x13]
cmp ecx, 7
ja 0x4958f3
mov edx, ecx
inc dl
mov byte [edi + 0x13], dl
mov dword [edi + ecx*4 + 0x98], eax
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x495912
movzx ecx, byte [edi + 0x13]
cmp ecx, 7
ja 0x495912
mov edx, ecx
inc dl
mov byte [edi + 0x13], dl
mov dword [edi + ecx*4 + 0x98], eax
cmp byte [esp + 0x14], 0x38
je 0x495920
cmp dword [esp + 0x2c], 0x36
jne 0x495961
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x10]
jge 0x495984
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jle 0x495967
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
mov eax, dword [edx + 0x68]
mov dword [esp + 0x30], ecx
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4], 0x3a
pxor xmm0, xmm0
movdqu xmmword [eax + ecx*4 + 1], xmm0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x495984
mov edx, dword [esp + 0x10]
jmp 0x495984
mov ecx, edx
mov edx, 0x3a
push 0
push 0
push 0
call fcn.004747e0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
lea edi, [eax + ecx]
mov eax, dword [edx + 0x6c]
mov ecx, dword [edx + 0x70]
cmp byte [esp + 0x44], 0
je 0x4959cc
cmp ecx, eax
jle 0x4959fc
lea ecx, [eax + 1]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x47
mov dword [ecx + eax*4 + 4], 0
mov esi, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], esi
mov dword [ecx + eax*4 + 0xc], 0
jmp 0x4959f2
cmp ecx, eax
jle 0x495a0c
lea ecx, [eax + 1]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x5c
mov dword [ecx + eax*4 + 4], ebx
mov ebx, dword [ebp + 8]
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], esi
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x495a24
mov ecx, edx
mov edx, 0x47
push 0
push dword [ebp + 8]
push 0
jmp 0x495a18
mov ecx, edx
mov edx, 0x5c
push esi
push dword [ebp + 8]
push ebx
call fcn.004747e0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [esp + 0x18]
cmp edi, 0xffffffff
je 0x495ae0
mov eax, dword [edx + 0x6c]
mov ecx, dword [edx + 0x70]
cmp byte [esp + 0x14], 0x35
jne 0x495a7e
cmp ecx, eax
mov edi, dword [esp + 0xc]
jle 0x495aa6
lea ecx, [eax + 1]
mov dword [edx + 0x6c], ecx
mov ecx, dword [edx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x33
mov ebx, dword [ebp + 8]
mov dword [ecx + eax*4 + 4], ebx
mov ebx, dword [esp + 0x34]
mov dword [ecx + eax*4 + 8], ebx
mov edi, dword [esp + 0xc]
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x495ac2
cmp ecx, eax
jg 0x4956c7
mov ecx, edx
mov edx, 8
push 0
push dword [esp + 0x38]
push 0
call fcn.004747e0
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4956fa
mov ecx, edx
mov edx, 0x33
push 0
push dword [esp + 0x38]
push dword [ebp + 8]
call fcn.004747e0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov al, 0x35
mov dword [esp + 0x14], eax
jmp 0x495711
push str.row_value_misused
push edi
call fcn.00434540
add esp, 8
jmp 0x4961fc
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
mov esi, 0x53e0e4
cmp byte [edx + 0x57], 0
mov ecx, dword [esp + 0x10]
jne 0x495b11
lea edx, [eax - 1]
mov esi, dword [esp + 0x30]
test esi, esi
cmovns edx, esi
lea esi, [edx + edx*4]
shl esi, 2
add esi, dword [ecx + 0x68]
mov dword [esi + 8], eax
mov esi, ecx
mov edx, dword [esp + 0x34]
call fcn.00498d80
cmp byte [esp + 0x24], 0x34
mov edi, dword [esp + 0xc]
jne 0x4961fc
mov ecx, esi
mov edx, 0x13
mov eax, dword [ebp + 8]
push eax
push eax
call fcn.00474720
add esp, 8
jmp 0x4961fc
mov ecx, ebx
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [esp + 0x24], eax
je 0x4961be
mov ebx, dword [eax]
jmp 0x4961c0
mov dword [esp + 0x44], ebx
lea eax, [esp + 0x38]
mov ecx, edi
mov esi, edx
push eax
call fcn.00499080
add esp, 4
mov ecx, esi
mov edx, eax
call fcn.00499030
pxor xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x90], 0
mov byte [esp + 0x60], 0x35
mov dword [esp + 0x40], esi
mov dword [esp + 0x6c], esi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], 0
lea eax, [esp + 0x60]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 1]
mov dword [esp + 0x24], eax
cmp ecx, 2
mov ebx, dword [esp + 0x10]
jl 0x495d51
mov eax, dword [esp + 0x34]
lea edi, [eax + 0x18]
xor ecx, ecx
jmp 0x495c06
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x1c]
add ecx, 2
add edi, 0x20
cmp ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
jge 0x495d51
mov eax, dword [edi - 0x10]
test edx, edx
mov dword [esp + 0x1c], ecx
je 0x495c1b
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x18]
jmp 0x495c1d
mov ecx, eax
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x14], eax
dec eax
mov dword [esi + 0x38], eax
push 0x10
push eax
mov dword [esp + 0x20], ecx
push ecx
push esi
call fcn.004991c0
add esp, 0x10
cmp dword [esi + 8], 0
je 0x495cca
mov esi, dword [edi]
mov ecx, dword [esp + 0xc]
mov edx, esi
mov ebx, dword [ebp + 8]
push ebx
call fcn.00494230
add esp, 4
cmp eax, ebx
je 0x495cca
test esi, esi
je 0x495c6e
mov ebx, 0x50
test byte [esi + 6], 0x40
jne 0x495c73
mov ebx, 0x51
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x495cba
lea esi, [edx + 1]
mov dword [ecx + 0x6c], esi
mov ecx, dword [ecx + 0x68]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4], bl
mov word [ecx + edx*4 + 2], 0
mov dword [ecx + edx*4 + 4], eax
mov eax, dword [ebp + 8]
mov dword [ecx + edx*4 + 8], eax
mov dword [ecx + edx*4 + 0xc], 0
mov dword [ecx + edx*4 + 0x10], 0
mov byte [ecx + edx*4 + 1], 0
jmp 0x495cca
mov edx, ebx
push 0
push dword [ebp + 8]
push eax
call fcn.004747e0
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x495d0b
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 8
mov dword [ecx + eax*4 + 4], 0
mov esi, dword [esp + 0x30]
mov dword [ecx + eax*4 + 8], esi
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x495d26
mov ecx, ebx
mov edx, 8
push 0
push dword [esp + 0x34]
push 0
call fcn.004747e0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [ebx + 0xc]
mov esi, dword [esp + 0x14]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
jns 0x495be5
mov edx, dword [esp + 0x10]
push esi
call fcn.0049d4a0
mov ebx, dword [esp + 0x14]
add esp, 4
jmp 0x495bee
test byte [esp + 0x28], 1
jne 0x495d77
mov ecx, ebx
mov edx, 0x4b
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ebx
push ebx
push 0
call fcn.00474720
add esp, 8
mov edi, dword [esp + 0xc]
jmp 0x495d9c
mov ecx, dword [esp + 0x24]
shl ecx, 4
mov eax, dword [esp + 0x34]
mov edx, dword [eax + ecx + 8]
mov edi, dword [esp + 0xc]
mov ecx, edi
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], ebx
push ebx
call fcn.00493b30
add esp, 4
mov edx, dword [esp + 0x40]
test edx, edx
mov ecx, dword [esp + 0x44]
je 0x495dad
call fcn.00469350
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00499590
mov ecx, esi
mov edx, dword [esp + 0x30]
call fcn.00498d80
jmp 0x4961fc
inc esi
movzx eax, byte [esi]
cmp al, 0x42
jl 0x49623e
movzx eax, al
add eax, eax
add eax, 0x53159e
mov ecx, dword [esp + 0x10]
mov edx, 0x60
push 0xffffffffffffffff
push eax
push 0
push 1
push edi
call fcn.00493a50
add esp, 0x14
jmp 0x49623e
lea edx, [eax + esi*4]
add edx, 8
mov dword [eax], 0
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
call fcn.004941b0
add esp, 4
mov edi, ebx
jmp 0x49623e
xor edx, edx
lea ecx, [esi + esi*2]
mov edi, dword [esp + 0x14]
test byte [edi + ecx*4 + 0xa], 0x20
jne 0x495e33
mov ebx, dword [esp + 0x1c]
jmp 0x495e41
mov ecx, esi
sub ecx, edx
mov ebx, dword [esp + 0x1c]
add cx, word [ebx + 0x24]
mov edx, ecx
movsx ecx, dx
add eax, ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edi
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], edx
jle 0x495e89
lea edx, [edi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [edi + edi*4]
mov dword [edx + ecx*4], 0x9d
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp + 8]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x495e9c
mov edx, 0x9d
push 0
push dword [ebp + 8]
push eax
call fcn.004747e0
add esp, 0xc
test si, si
mov edi, dword [esp + 0xc]
js 0x4961fc
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*2]
cmp byte [eax + ecx*4 + 5], 0x45
jne 0x4961fc
mov ecx, dword [esp + 0x10]
mov edx, 0x57
push dword [ebp + 8]
call fcn.004939f0
add esp, 4
jmp 0x4961fc
mov esi, edx
shr esi, 1
and edx, 0xfffffffe
mov ebx, dword [esp + 0xc]
add edx, ebx
add edx, 4
cmp dword [esp + 0x1c], edx
jae 0x495efa
mov edx, dword [esp + 0x1c]
add edx, esi
inc edx
cmp dword [esp + 0x14], edx
jb 0x496126
inc esi
mov dword [esp + 0x2c], esi
and esi, 0xfffffff0
mov dword [esp + 0x14], esi
lea eax, [esi + esi]
lea edx, [ebx + 0x21]
xor edi, edi
movdqa xmm0, xmmword [str._t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t]
movdqa xmm2, xmmword [0x5281f0]
mov esi, dword [esp + 0x1c]
movzx ebx, byte [edx + edi*2 - 1]
movd xmm3, ebx
movzx ebx, byte [edx + edi*2 - 3]
movd xmm5, ebx
punpcklbw xmm5, xmm3
movzx ebx, byte [edx + edi*2 - 5]
movd xmm3, ebx
movzx ebx, byte [edx + edi*2 - 7]
movd xmm4, ebx
punpcklbw xmm4, xmm3
punpcklwd xmm4, xmm5
movzx ebx, byte [edx + edi*2 - 9]
movd xmm3, ebx
movzx ebx, byte [edx + edi*2 - 0xb]
movd xmm5, ebx
punpcklbw xmm5, xmm3
movzx ebx, byte [edx + edi*2 - 0xd]
movd xmm6, ebx
movzx ebx, byte [edx + edi*2 - 0xf]
movd xmm3, ebx
punpcklbw xmm3, xmm6
punpcklwd xmm3, xmm5
punpckldq xmm3, xmm4
movzx ebx, byte [edx + edi*2 - 0x11]
movd xmm4, ebx
movzx ebx, byte [edx + edi*2 - 0x13]
movd xmm5, ebx
punpcklbw xmm5, xmm4
movzx ebx, byte [edx + edi*2 - 0x15]
movd xmm6, ebx
movzx ebx, byte [edx + edi*2 - 0x17]
movd xmm4, ebx
punpcklbw xmm4, xmm6
punpcklwd xmm4, xmm5
movzx ebx, byte [edx + edi*2 - 0x19]
movd xmm5, ebx
movzx ebx, byte [edx + edi*2 - 0x1b]
movd xmm6, ebx
punpcklbw xmm6, xmm5
movzx ebx, byte [edx + edi*2 - 0x1d]
movd xmm5, ebx
movzx ebx, byte [edx + edi*2 - 0x1f]
movd xmm7, ebx
punpcklbw xmm7, xmm5
punpcklwd xmm7, xmm6
punpckldq xmm7, xmm4
punpcklqdq xmm7, xmm3
movdqa xmm4, xmm7
paddb xmm4, xmm7
pxor xmm3, xmm3
pcmpgtb xmm3, xmm4
pand xmm3, xmm0
paddb xmm3, xmm7
movzx ebx, byte [edx + edi*2]
movd xmm4, ebx
movzx ebx, byte [edx + edi*2 - 2]
movd xmm6, ebx
punpcklbw xmm6, xmm4
movzx ebx, byte [edx + edi*2 - 4]
movd xmm4, ebx
movzx ebx, byte [edx + edi*2 - 6]
movd xmm5, ebx
punpcklbw xmm5, xmm4
punpcklwd xmm5, xmm6
movzx ebx, byte [edx + edi*2 - 8]
movd xmm4, ebx
movzx ebx, byte [edx + edi*2 - 0xa]
movd xmm6, ebx
punpcklbw xmm6, xmm4
movzx ebx, byte [edx + edi*2 - 0xc]
movd xmm7, ebx
movzx ebx, byte [edx + edi*2 - 0xe]
movd xmm4, ebx
punpcklbw xmm4, xmm7
punpcklwd xmm4, xmm6
punpckldq xmm4, xmm5
movzx ebx, byte [edx + edi*2 - 0x10]
movd xmm5, ebx
movzx ebx, byte [edx + edi*2 - 0x12]
movd xmm6, ebx
punpcklbw xmm6, xmm5
movzx ebx, byte [edx + edi*2 - 0x14]
movd xmm7, ebx
movzx ebx, byte [edx + edi*2 - 0x16]
movd xmm5, ebx
punpcklbw xmm5, xmm7
punpcklwd xmm5, xmm6
movzx ebx, byte [edx + edi*2 - 0x18]
movd xmm6, ebx
movzx ebx, byte [edx + edi*2 - 0x1a]
movd xmm7, ebx
punpcklbw xmm7, xmm6
movzx ebx, byte [edx + edi*2 - 0x1c]
movd xmm6, ebx
movzx ebx, byte [edx + edi*2 - 0x1e]
movd xmm1, ebx
punpcklbw xmm1, xmm6
punpcklwd xmm1, xmm7
punpckldq xmm1, xmm5
punpcklqdq xmm1, xmm4
movdqa xmm4, xmm1
paddb xmm4, xmm1
pxor xmm5, xmm5
pcmpgtb xmm5, xmm4
pand xmm5, xmm0
paddb xmm5, xmm1
psllw xmm3, 4
pand xmm3, xmmword [0x5281e0]
pand xmm5, xmm2
por xmm5, xmm3
mov ebx, edi
and ebx, 0x7ffffff0
movdqu xmmword [esi + ebx], xmm5
add edi, 0x10
cmp dword [esp + 0x14], edi
jne 0x495f22
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x2c], edx
mov ebx, dword [esp + 0xc]
je 0x496172
add ecx, 0xfffffffe
mov edi, eax
shr edi, 1
mov edx, dword [esp + 0x1c]
add edx, edi
mov edi, dword [esp + 0xc]
mov esi, ecx
movzx ecx, byte [ebx + eax + 2]
mov bh, byte [edi + eax + 3]
mov bl, cl
add bl, cl
sar bl, 7
and bl, 9
add bl, cl
mov cl, bh
add cl, bh
sar cl, 7
and cl, 9
add cl, bh
shl bl, 4
and cl, 0xf
or cl, bl
mov ebx, dword [esp + 0xc]
mov byte [edx], cl
mov ecx, esi
add eax, 2
inc edx
cmp eax, esi
jl 0x496137
shr eax, 1
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x1c]
mov byte [edi + eax], 0
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, 0x4d
push 0xfffffffffffffffa
push edi
push 0
push ebx
push esi
call fcn.00493a50
add esp, 0x14
mov edi, ebx
jmp 0x49623e
mov edi, esi
jmp 0x49623e
push str.RAISE___may_only_be_used_within_a_trigger_program
push edi
call fcn.00434540
add esp, 8
xor edi, edi
jmp 0x49623e
xor ebx, ebx
mov edx, dword [esi + 8]
movzx eax, cl
mov ecx, dword [esp + 0x1c]
push 0
push eax
push ebx
call fcn.0043a9a0
add esp, 0xc
test eax, eax
je 0x4961e6
mov edx, eax
cmp dword [eax + 0x14], 0
je 0x4962e4
push esi
push str.unknown_function:__T__
push edi
call fcn.00434540
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x49621b
movzx ecx, byte [edi + 0x13]
cmp ecx, 7
ja 0x49621b
mov edx, ecx
inc dl
mov byte [edi + 0x13], dl
mov dword [edi + ecx*4 + 0x98], eax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x49623a
movzx ecx, byte [edi + 0x13]
cmp ecx, 7
ja 0x49623a
mov edx, ecx
inc dl
mov byte [edi + 0x13], dl
mov dword [edi + ecx*4 + 0x98], eax
mov edi, dword [esp + 0x20]
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 0xc]
cmp dword [edi + 0x24], 0
jne 0x4961f5
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push edi
call fcn.00434540
add esp, 0x10
jmp 0x4961f5
movzx eax, word [esi + 0x20]
test ax, ax
js 0x49639e
mov ecx, dword [esi + 0x2c]
mov edi, dword [ecx + 4]
lea esi, [eax + eax*2]
movsx edx, ax
mov dword [esp + 0x14], ecx
call fcn.004965c0
mov edx, edi
movsx edi, ax
sub edi, ebx
movzx ecx, word [edx + esi*4 + 0xa]
test cl, 0x60
je 0x4963dd
lea eax, [edx + esi*4]
test ecx, 0x100
jne 0x496412
lea ebx, [edx + esi*4]
add ebx, 0xa
mov edx, ecx
or edx, 0x100
mov word [ebx], dx
test cl, 0x80
je 0x4962d6
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push edi
push eax
call fcn.00496790
add esp, 8
movzx edx, word [ebx]
and edx, 0xfe7f
mov word [ebx], dx
jmp 0x49623e
mov eax, dword [edx + 4]
test eax, 0x400000
mov edi, dword [ebp + 8]
jne 0x496383
test eax, 0x280000
mov dword [esp + 0x14], edx
je 0x496316
mov ecx, dword [esp + 0xc]
mov edx, esi
push dword [esp + 0x14]
call fcn.00497540
mov edx, dword [esp + 0x18]
add esp, 4
test ebx, ebx
jle 0x49642c
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x24]
lea edi, [eax + 8]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x2c], 0
jmp 0x496341
inc ebx
add edi, 0x10
cmp dword [esp + 0x30], ebx
je 0x4963a7
cmp ebx, 0x1f
ja 0x496368
mov dword [esp + 0x18], eax
mov ecx, dword [edi]
call fcn.0048aef0
test eax, eax
je 0x496360
mov eax, dword [esp + 0x2c]
bts eax, ebx
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
test byte [edx + 4], 0x20
je 0x496337
test eax, eax
jne 0x496337
mov edx, dword [edi]
mov ecx, dword [esp + 0xc]
call fcn.00475f60
mov edx, dword [esp + 0x14]
jmp 0x496337
mov ecx, dword [esp + 0xc]
mov eax, edx
mov edx, dword [esp + 0x24]
push edi
push dword [eax + 8]
call fcn.00497140
add esp, 8
jmp 0x496240
not ebx
mov edi, ebx
jmp 0x49623e
cmp dword [esp + 0x24], 0
mov dword [esp + 0x18], eax
je 0x49649b
cmp dword [esp + 0x2c], 0
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x30]
je 0x49643f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
mov dword [esp + 0x28], ecx
add eax, ebx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
jmp 0x49645a
cmp byte [edx + esi*4 + 5], 0x45
jne 0x49623e
mov ebx, dword [esp + 0x10]
mov ecx, ebx
mov edx, 0x51
mov esi, dword [ebp + 8]
push esi
push edi
call fcn.00474720
add esp, 8
mov ecx, ebx
mov edx, 0x57
push esi
call fcn.004939f0
jmp 0x49552a
push dword [eax]
push 0x53162a
push dword [esp + 0x14]
call fcn.00434540
add esp, 0xc
xor edi, edi
jmp 0x49623e
mov dword [esp + 0x18], 0
cmp dword [esp + 0x24], 0
je 0x4964fe
mov ecx, dword [esp + 0xc]
mov edx, ebx
call fcn.00497570
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x14]
mov eax, 0xc0
and eax, dword [edx + 4]
je 0x496481
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 8]
movzx edx, byte [ecx]
cmp edx, 0xa9
je 0x49647e
cmp edx, 0xa7
jne 0x496481
mov byte [ecx + 2], al
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
push 3
push 0
push dword [esp + 0x30]
call fcn.004975c0
add esp, 0xc
jmp 0x4964aa
mov dword [esp + 0x28], 0
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x30]
cmp ebx, 2
jl 0x4964c2
test byte [esi + 5], 1
mov eax, dword [esp + 0x14]
je 0x4964cb
mov edi, dword [esp + 0x24]
add edi, 0x18
jmp 0x4964d2
cmp ebx, 1
mov eax, dword [esp + 0x14]
jne 0x4964e6
mov edi, dword [esp + 0x24]
add edi, 8
mov ecx, dword [esp + 0x1c]
mov edx, eax
push dword [edi]
push ebx
call fcn.00497870
add esp, 8
mov edi, dword [ebp + 8]
test byte [eax + 4], 0x20
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
je 0x496539
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x496523
jmp 0x49651c
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x14]
test byte [eax + 4], 0x20
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x10]
je 0x496539
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
mov edx, 0x55
push 0xfffffffffffffffe
push eax
push 0
push 0
push 0
call fcn.00493a50
add esp, 0x14
movzx eax, byte [esi + 2]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
mov edx, esi
push eax
push dword [esp + 0x18]
push ebx
push edi
push dword [esp + 0x38]
call fcn.004979b0
add esp, 0x14
test ebx, ebx
je 0x49623e
test esi, esi
jne 0x49623e
cmp ebx, 1
jne 0x4965a0
cmp dword [esp + 0x28], 0
je 0x49623e
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x49623e
mov ecx, eax
inc cl
mov edx, dword [esp + 0xc]
mov byte [edx + 0x13], cl
lea eax, [edx + eax*4]
add eax, 0x98
jmp 0x4965b3
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x1c], ebx
jge 0x49623e
mov dword [eax + 0x1c], ebx
add eax, 0x20
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
jmp 0x49623e