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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa0
push esi
mov esi, edx
mov dword [esp + 0x1c], 0
mov edx, ecx
mov dword [esp + 0x2c], esi
push edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], 0
mov edi, dword [edx + 8]
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], 0
test edi, edi
je 0x452c49
mov ecx, 0x72
test esi, esi
je 0x45161d
movzx ecx, byte [esi]
lea eax, [ecx - 0x13]
mov dword [esp + 0x18], ecx
cmp eax, 0x9a
ja case.0x451636.21
movzx eax, byte [eax + 0x453098]
jmp dword [eax*4 + 0x453020]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x30], esi
jmp 0x451611
mov ecx, dword [esi + 0x28]
movsx eax, word [esi + 0x22]
cmp byte [ecx], 0
lea eax, [eax + eax*2]
jne 0x451662
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx + eax*8 + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [ecx + 1], 0
je case.0x451636.162
mov edx, dword [ecx + 0x1c]
mov esi, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
mov edx, dword [edx + eax*8 + 0xc]
cmp dword [edi + 0x70], ecx
jg 0x451697
push dword [ebp + 8]
mov ecx, edi
push edx
push esi
mov edx, 0x5a
call fcn.00436f60
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esi + 4], 8
mov ecx, dword [esi + 0x1c]
je 0x45183b
push dword [ebp + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
call fcn.004515d0
movsx ecx, word [esi + 0x20]
add esp, 4
mov dword [esp + 0x24], eax
test ecx, ecx
js 0x451706
mov eax, dword [esi + 0x2c]
add ecx, ecx
mov eax, dword [eax + 4]
mov cl, byte [eax + ecx*8 + 0xd]
mov eax, dword [esp + 0x24]
jmp 0x451708
mov cl, 0x44
movsx ecx, cl
mov dword [esp + 0xc], ecx
cmp ecx, 0x41
je 0x451831
mov esi, dword [ebp + 8]
cmp eax, esi
je 0x451775
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x45173c
push 0
push esi
push eax
mov edx, 0x4f
mov ecx, edi
call fcn.00436f60
add esp, 0xc
jmp 0x45176b
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
mov eax, esi
mov dword [esp + 0x24], eax
mov edx, dword [edi + 0x6c]
lea esi, [ecx*2 + 0x4f42dc]
mov dword [esp + 0xc], esi
cmp dword [edi + 0x70], edx
jg 0x4517a0
push 0
push 1
push eax
mov edx, 0x5b
mov ecx, edi
call fcn.00436f60
add esp, 0xc
mov edx, eax
jmp 0x4517d7
mov esi, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x4517f5
push esi
or edx, 0xffffffff
call fcn.00437920
mov eax, dword [esp + 0x28]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
jns 0x4517fd
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x451826
push 0xffffffffffffffff
push esi
mov edx, eax
mov ecx, edi
call fcn.00437ab0
mov eax, dword [esp + 0x2c]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x451831
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xff
mov eax, dword [esp + 0x24]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, ecx
jns 0x451853
mov ecx, dword [edx + 0x34]
test ecx, ecx
jns 0x451852
movsx eax, word [esi + 0x20]
sub eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
dec ecx
mov al, byte [esi + 0x26]
push dword [ebp + 8]
mov edx, dword [esi + 0x2c]
mov byte [esp + 0x2f], al
movsx eax, word [esi + 0x20]
push eax
push ecx
mov ecx, edi
call fcn.00451250
mov cl, byte [esp + 0x37]
add esp, 0xc
test cl, cl
je 0x453014
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x453014
movzx edx, cl
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
mov edx, esi
mov ecx, dword [esp + 0x10]
push edi
push 0
call fcn.00451080
add esp, 8
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x4518e0
nop
mov eax, dword [esi + 4]
test eax, 0x41000
je 0x4518e0
test eax, 0x40000
je 0x4518d9
mov eax, dword [esi + 0x14]
mov esi, dword [eax + 4]
jmp 0x4518dc
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4518c0
mov eax, dword [esi + 8]
xor edx, edx
mov ecx, dword [edi + 0x6c]
cmp byte [eax + 4], dl
sete dl
cmp dword [edi + 0x70], ecx
jg 0x451911
push 0
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x46
call fcn.00436f60
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], edx
jmp 0x4519f9
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x453014
mov edx, ecx
lea esi, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x451940
sub edx, esi
and edx, 0x3fffffff
push 1
push edx
lea edx, [esp + 0x40]
call fcn.004192a0
mov ecx, dword [edi]
push 0
push 8
call fcn.00415d30
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x45197c
mov eax, dword [esp + 0x38]
mov dword [ecx], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 4], eax
push 0xfffffffffffffff3
push ecx
push 0
push dword [ebp + 8]
mov edx, 0x91
mov ecx, edi
push 0
call fcn.00437270
mov eax, dword [ebp + 8]
add esp, 0x14
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [esi + 8]
mov edx, dword [ebp + 8]
mov ecx, edi
call fcn.00437010
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4519de
push 0
push dword [ebp + 8]
mov edx, 0x49
mov ecx, edi
push 0
call fcn.00436f60
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 8]
add edx, 2
jne 0x451a25
xor esi, esi
jmp 0x451a3f
mov esi, edx
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x451a30
sub esi, ecx
and esi, 0x3fffffff
mov ecx, dword [edi]
dec esi
push esi
call fcn.0041a040
mov dword [esp + 0x18], eax
add esp, 4
mov eax, esi
mov esi, dword [edi + 0x6c]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
cmp dword [edi + 0x70], esi
jg 0x451a79
push 0
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x4b
call fcn.00436f60
add esp, 0xc
mov esi, eax
jmp 0x451aa7
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x451aca
mov edx, dword [esp + 0x14]
push edx
mov edx, 0xfffffff9
call fcn.00437920
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
jns 0x451ad2
mov esi, dword [edi + 0x6c]
dec esi
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov edx, dword [esp + 0x14]
je 0x451afe
push 0xfffffffffffffff9
push edx
mov edx, eax
mov ecx, edi
call fcn.00437ab0
mov eax, dword [ebp + 8]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x453014
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf9
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movsx eax, word [esi + 0x20]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0xc], eax
cmp dword [edi + 0x70], ecx
jg 0x451b41
push 0
push dword [ebp + 8]
mov edx, 0x4c
mov ecx, edi
push eax
call fcn.00436f60
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x451b77
mov esi, dword [esp + 0xc]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x4c
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 8]
cmp byte [eax + 1], 0
je 0x453014
mov edx, dword [edx + 0xd8]
test edx, edx
jne 0x451b92
xor esi, esi
jmp 0x451bbf
movsx ecx, word [esi + 0x20]
mov eax, 2
mov esi, dword [edx + 4]
mov dword [esp + 0xc], ecx
mov edi, dword [esp + 0xc]
lea ecx, [edx + eax*4]
cmp dword [ecx], edi
mov edi, dword [esp + 0x2c]
je 0x451bbc
add eax, dword [ecx + 4]
cmp eax, esi
jl 0x451ba2
xor esi, esi
jmp 0x451bbf
lea esi, [ecx + 8]
mov dword [edx], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x451be2
push esi
or edx, 0xffffffff
call fcn.00437920
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xff
mov dword [eax + ecx*4 - 4], esi
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [ebp + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
call fcn.004515d0
mov edx, dword [ebp + 8]
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, edx
je 0x451c7a
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x451c43
push 0
push edx
push eax
mov edx, 0x4f
mov ecx, edi
call fcn.00436f60
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x451c76
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x14], edx
mov ecx, dword [esi + 8]
xor edx, edx
call fcn.0045d210
mov ecx, dword [edi + 0x6c]
movsx esi, al
cmp dword [edi + 0x70], ecx
jg 0x451cae
push 0
push esi
push dword [ebp + 8]
mov edx, 0x55
mov ecx, edi
call fcn.00436f60
mov eax, dword [esp + 0x20]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov edi, 0x80
cmp ecx, 0x2d
mov dword [esp + 0xc], edi
sete al
lea ecx, [eax + 0x34]
mov dword [esp + 0x18], ecx
jmp 0x451d02
xor edi, edi
mov edx, dword [esi + 0xc]
mov dword [esp + 0x14], edx
mov al, byte [edx]
cmp al, 0xa8
jne 0x451d12
mov al, byte [edx + 0x26]
cmp al, 0xa9
jne 0x451d1b
lea eax, [edx + 0x14]
jmp 0x451d22
cmp al, 0x83
jne 0x451d45
mov eax, dword [edx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
jle 0x451d45
push edi
push ecx
push dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.0044c450
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
call fcn.00453200
mov edi, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x10]
mov esi, eax
lea eax, [esp + 0x1c]
mov edx, dword [edi + 0x10]
push eax
call fcn.00453200
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [esp + 0x18]
or ecx, 0x20
push ecx
push dword [ebp + 8]
push eax
push esi
mov esi, dword [esp + 0x20]
mov ecx, esi
push edx
push dword [edi + 0x10]
mov edx, dword [esp + 0x2c]
call fcn.0044c160
add esp, 0x18
jmp 0x4520df
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
call fcn.00453200
mov edx, dword [esi + 0x10]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1c]
push eax
call fcn.00453200
mov ecx, dword [edi + 0x6c]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x451df2
push dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov ecx, edi
push edx
mov edx, dword [esp + 0x20]
push eax
call fcn.00436f60
add esp, 0xc
jmp 0x4520df
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
jmp 0x4520df
mov eax, dword [esi + 0xc]
mov cl, byte [eax]
cmp cl, 0x93
jne 0x451e5b
mov esi, dword [ebp + 8]
mov edx, eax
mov ecx, dword [esp + 0x10]
push esi
push 1
call fcn.00451080
add esp, 8
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp cl, 0x91
jne 0x451ee5
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x453014
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x451e74
sub edx, esi
and edx, 0x3fffffff
push 1
push edx
lea edx, [esp + 0x40]
call fcn.004192a0
movsd xmm0, qword [esp + 0x40]
xorps xmm0, xmmword [0x502da0]
mov ecx, dword [edi]
push 0
push 8
movsd qword [esp + 0x48], xmm0
call fcn.00415d30
mov ecx, eax
add esp, 0x10
test ecx, ecx
je 0x451ec3
mov eax, dword [esp + 0x38]
mov dword [ecx], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 4], eax
push 0xfffffffffffffff3
push ecx
push 0
push dword [ebp + 8]
mov edx, 0x91
mov ecx, edi
push 0
call fcn.00437270
mov eax, dword [ebp + 8]
add esp, 0x14
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x78]
mov byte [esp + 0x78], 0x93
mov dword [esp + 0x7c], 0x4400
mov dword [esp + 0x80], 0
call fcn.00453200
mov edx, dword [esi + 0xc]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1c]
push eax
call fcn.00453200
mov ecx, dword [edi + 0x6c]
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x451f55
push dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov ecx, edi
push edx
push eax
mov edx, 0x65
call fcn.00436f60
add esp, 0xc
jmp 0x4520df
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4], 0x65
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4520df
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov esi, dword [esp + 0x10]
mov ecx, esi
push eax
call fcn.00453200
mov ecx, dword [edi + 0x6c]
add esp, 4
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
cmp dword [edi + 0x70], ecx
jg 0x451fc7
push 0
push dword [ebp + 8]
mov ecx, edi
push eax
call fcn.00436f60
add esp, 0xc
jmp 0x4520df
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
jmp 0x4520df
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x10]
push eax
call fcn.00453200
mov edx, eax
add esp, 4
mov eax, dword [esi + 0x10]
test eax, eax
je 0x452045
mov ecx, dword [eax + 4]
test ecx, 0x41000
je 0x452045
test ecx, 0x40000
je 0x45203e
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
jmp 0x452041
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x452023
mov eax, dword [eax + 8]
xor ecx, ecx
mov al, byte [eax + 4]
test al, al
sete cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp byte [esi + 0x26], 0x2d
mov esi, dword [edi + 0x6c]
sete cl
mov dword [esp + 0x14], ecx
xor ecx, ecx
test al, al
setne cl
mov dword [esp + 0xc], ecx
cmp dword [edi + 0x70], esi
jg 0x45208e
push ecx
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x58
call fcn.00436f60
add esp, 0xc
mov esi, eax
jmp 0x4520bc
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x58
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x4520db
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov edx, dword [esp + 0x14]
xor edx, dword [esp + 0x24]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4520fb
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x4520fb
movzx eax, al
mov dword [esi + eax*4 + 0x94], ecx
inc byte [esi + 0x13]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x453014
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x453014
movzx eax, al
mov dword [esi + eax*4 + 0x94], ecx
inc byte [esi + 0x13]
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x452148
push 0
push dword [ebp + 8]
mov edx, 0x46
mov ecx, edi
push 1
call fcn.00436f60
add esp, 0xc
jmp 0x45217a
mov edx, dword [ebp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x20]
mov esi, dword [esp + 0x10]
mov ecx, esi
push eax
call fcn.00453200
mov ecx, dword [edi + 0x6c]
add esp, 4
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [edi + 0x70], ecx
jg 0x4521b9
push 0
push 0
push eax
mov ecx, edi
call fcn.00436f60
add esp, 0xc
mov dword [esp + 0xc], eax
jmp 0x4521f4
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x452214
push 0
push dword [ebp + 8]
mov edx, 0x46
mov ecx, edi
push 0
call fcn.00436f60
add esp, 0xc
jmp 0x452246
mov edx, dword [ebp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x51], 0
je 0x45225e
mov eax, 0x50cae8
mov dword [eax + 8], edx
jmp 0x4520df
mov ecx, dword [esp + 0xc]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x4520df
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x45229d
push dword [esi + 8]
push str.misuse_of_aggregate:__s__
push edx
call fcn.00419050
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movsx ecx, word [esi + 0x22]
mov eax, dword [eax + 0x28]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x1000000
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
mov al, byte [eax + 0x4e]
mov byte [esp + 0x18], al
je 0x4522e2
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0x34]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [edx + 0x17], 0
je 0x45232d
mov edx, esi
mov byte [esp + 0x54], 2
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], fcn.0044e3a0
mov dword [esp + 0x48], 0x44e240
mov dword [esp + 0x58], 0
call fcn.00449540
cmp byte [esp + 0x54], 0
je 0x45232d
mov ecx, dword [esp + 0x10]
mov edx, esi
push 0xffffffffffffffff
call fcn.00453140
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x4000
je 0x4523e9
mov dword [esp + 0x20], 0
xor eax, eax
mov ecx, dword [esi + 8]
mov edx, ecx
push 0
push dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x1c]
push eax
mov dword [esp + 0x30], eax
call fcn.004642a0
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
je 0x45283c
cmp dword [eax + 0x14], 0
jne 0x45283c
mov eax, dword [eax + 4]
test eax, 0x200
je 0x45247d
mov esi, dword [esp + 0x10]
mov ecx, esi
push dword [ebp + 8]
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
call fcn.004532f0
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, 1
jle 0x452454
mov ecx, dword [esp + 0x20]
add ecx, 0x1c
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4523ff
push 0
push dword [esp + 0x20]
mov edx, 0x33
mov ecx, edi
push dword [ebp + 8]
call fcn.00436f60
add esp, 0xc
jmp 0x452431
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x452342
mov eax, dword [ecx]
jmp 0x452344
mov edx, dword [ebp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x33
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
mov ecx, esi
push dword [ebp + 8]
mov edx, dword [edx]
call fcn.004532f0
add dword [esp + 0x18], 0x18
add esp, 4
sub dword [esp + 0xc], 1
jne 0x4523c7
mov edx, dword [esp + 0x1c]
mov ecx, dword [edi + 0xc]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x45300b
push edx
mov edx, edi
call fcn.00437560
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test eax, 0x400
je 0x4524a0
mov eax, dword [esp + 0x20]
push dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 4]
call fcn.004515d0
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x18], eax
test edx, edx
jle 0x45254c
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
add ecx, 4
mov dword [esp + 0x1c], ecx
xor edi, edi
cmp eax, 0x20
jge 0x452502
mov edx, dword [ecx]
mov byte [esp + 0x54], 1
mov dword [esp + 0x44], fcn.0044e3a0
mov dword [esp + 0x48], 0x44e240
mov dword [esp + 0x58], 0
test edx, edx
je 0x4524ff
lea ecx, [esp + 0x40]
call fcn.00449540
cmp byte [esp + 0x54], 0
mov eax, dword [esp + 0x18]
je 0x452502
bts edi, eax
mov ecx, dword [esp + 0x34]
test byte [ecx + 4], 0x20
je 0x452528
cmp dword [esp + 0xc], 0
jne 0x452528
mov edx, dword [esp + 0x1c]
mov ecx, esi
mov edx, dword [edx]
call fcn.0044bed0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x24]
add ecx, 0x18
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
cmp eax, edx
jl 0x4524c3
mov esi, dword [esp + 0x30]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x452626
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x10]
je 0x452578
mov eax, dword [ecx + 0x2c]
lea edi, [eax + 1]
add eax, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + 0x2c], eax
jmp 0x4525d8
cmp edx, 1
jne 0x4525a5
mov al, byte [ecx + 0x13]
test al, al
jne 0x452590
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x18], eax
jmp 0x4525d8
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x94]
mov dword [esp + 0x18], eax
jmp 0x4525d8
mov esi, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x18], eax
cmp edx, esi
jg 0x4525c1
add eax, edx
mov dword [ecx + 0x20], eax
mov eax, esi
sub eax, edx
mov dword [ecx + 0x1c], eax
jmp 0x4525d4
mov eax, dword [ecx + 0x2c]
lea edi, [eax + 1]
add eax, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + 0x2c], eax
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x20]
test dl, 0xc0
je 0x45260e
mov ecx, dword [eax + 4]
mov cl, byte [ecx]
mov byte [esp + 0x2b], cl
cmp cl, 0xa2
mov ecx, dword [esp + 0x10]
je 0x452601
cmp byte [esp + 0x2b], 0xa4
jne 0x45260e
mov edi, dword [eax + 4]
and dl, 0xc0
mov byte [edi + 0x26], dl
mov edi, dword [esp + 0x2c]
push 3
push 0
push dword [esp + 0x20]
mov edx, eax
call fcn.004533d0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x45262e
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x24]
cmp eax, 2
jl 0x452657
test byte [esi + 4], 0x80
je 0x452657
push dword [ecx + 0x1c]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
push eax
call fcn.0048c9a0
add esp, 8
mov dword [esp + 0x34], eax
jmp 0x452664
test eax, eax
jle 0x452660
push dword [ecx + 4]
jmp 0x452640
mov eax, dword [esp + 0x34]
test byte [eax + 4], 0x20
je 0x452721
mov esi, dword [esp + 0xc]
test esi, esi
jne 0x45267d
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 8]
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x45269e
push 0
push 0
push 0
mov edx, 0x52
mov ecx, edi
call fcn.00436f60
add esp, 0xc
mov edx, eax
jmp 0x4526d5
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x52
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x4526ed
push esi
mov edx, 0xfffffffe
call fcn.00437920
add esp, 4
jmp 0x452721
test edx, edx
jns 0x4526f5
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x452716
push 0xfffffffffffffffe
push esi
mov edx, eax
mov ecx, edi
call fcn.00437ab0
add esp, 8
jmp 0x452721
test esi, esi
je 0x452721
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xfe
mov esi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x38], ecx
mov edx, dword [esi + 0x34]
neg edx
sbb edx, edx
add edx, 0x3f
cmp dword [edi + 0x70], ecx
jg 0x452752
push dword [ebp + 8]
mov ecx, edi
push dword [esp + 0x1c]
push dword [esp + 0x24]
call fcn.00436f60
add esp, 0xc
jmp 0x452790
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x4527ab
push dword [esp + 0x34]
mov edx, 0xfffffff8
call fcn.00437920
add esp, 4
jmp 0x4527e2
test eax, eax
jns 0x4527b3
mov eax, dword [edi + 0x6c]
dec eax
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
cmp byte [eax + ecx*4 + 1], 0
lea ecx, [eax + ecx*4]
je 0x4527d7
push 0xfffffffffffffff8
push dword [esp + 0x38]
mov edx, ecx
mov ecx, edi
call fcn.00437ab0
add esp, 8
jmp 0x4527e2
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], 0xf8
mov ecx, dword [edi + 0x6c]
test ecx, ecx
jle 0x4527fb
mov eax, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
movzx edx, al
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x453014
cmp dword [esp + 0x1c], 0
jne 0x453014
cmp eax, 1
jne 0x452820
mov ecx, dword [esp + 0x18]
jmp 0x4520ff
cmp eax, dword [esi + 0x1c]
jle 0x453014
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [esp + 0x38]
push str.unknown_function:__s__
push dword [esp + 0x18]
call fcn.00419050
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ecx, 0x83
jne 0x452888
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
je 0x452888
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push edx
call fcn.00419050
mov eax, dword [ebp + 8]
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.0044fca0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0x1c], 0
jne 0x4528ba
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.0044fca0
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x1c]
test edi, edi
je 0x4528fe
mov al, byte [ecx]
cmp al, 0xa8
jne 0x4528ca
mov al, byte [ecx + 0x26]
cmp al, 0xa9
jne 0x4528d5
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
jmp 0x4528e7
cmp al, 0x83
jne 0x4528e2
mov eax, dword [ecx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x4528e7
mov eax, 1
cmp edi, eax
je 0x4528fe
push eax
push edi
push str._d_columns_assigned__d_values
push edx
call fcn.00419050
mov ecx, dword [esi + 0xc]
add esp, 0x10
movsx eax, word [esi + 0x20]
add eax, dword [ecx + 0x1c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0x38]
dec eax
mov dword [esp + 0xc], eax
dec eax
mov dword [edx + 0x38], eax
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x70], ecx
jg 0x45293b
push 0
push dword [ebp + 8]
mov edx, 0x49
mov ecx, edi
push 0
call fcn.00436f60
add esp, 0xc
jmp 0x45296d
mov edx, dword [ebp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, esi
push dword [esp + 0x10]
call fcn.004501a0
mov ecx, dword [edi + 0x6c]
add esp, 8
mov esi, dword [ebp + 8]
cmp dword [edi + 0x70], ecx
jg 0x4529a4
push 0
push esi
push 1
mov edx, 0x46
mov ecx, edi
call fcn.00436f60
add esp, 0xc
jmp 0x4529d3
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xc]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4529f1
push edx
mov edx, edi
call fcn.00437560
add esp, 4
jmp 0x4529fa
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x452a1f
push 0
push 0
push esi
mov edx, 0x53
mov ecx, edi
call fcn.00436f60
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x452458
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x53
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x452458
mov edi, dword [ebp + 8]
mov edx, esi
mov ecx, dword [esp + 0x10]
push 0
push 0
push edi
call fcn.004535c0
add esp, 0xc
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x2c]
movsx edx, word [esi + 0x20]
mov dword [esp + 0x38], eax
movsx ecx, word [eax + 0x2a]
inc ecx
imul ecx, dword [esi + 0x1c]
inc ecx
add edx, ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x452aae
push 0
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x95
call fcn.00436f60
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x452ae0
mov esi, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4], 0x95
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, word [esi + 0x20]
test ax, ax
js 0x453014
movsx ecx, ax
mov eax, dword [esp + 0x38]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xd], 0x45
jne 0x453014
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x452b29
push 0
push 0
push edx
mov edx, 0x54
mov ecx, edi
call fcn.00436f60
mov eax, dword [ebp + 8]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x54
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
jmp 0x451a00
push str.row_value_misused
push edx
call fcn.00419050
mov eax, dword [ebp + 8]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0xc], ecx
cmp dword [edi + 0x70], ecx
jg 0x452b8d
push 0
push 0
push edx
mov edx, 0x15
mov ecx, edi
call fcn.00436f60
add esp, 0xc
mov dword [esp + 0xc], eax
jmp 0x452bc0
mov esi, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x15
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebp + 8]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x14]
call fcn.004515d0
mov ecx, dword [edi]
add esp, 4
mov esi, dword [edi + 0x6c]
mov edx, dword [esp + 0xc]
mov dword [ebp + 8], eax
cmp byte [ecx + 0x51], 0
je 0x452beb
mov eax, 0x50cae8
jmp 0x452bfc
test edx, edx
lea eax, [esi - 1]
cmovns eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], esi
test edx, edx
jns 0x452c07
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x452c20
mov eax, dword [ebp + 8]
mov ecx, 0x50cae8
mov dword [ecx + 0xc], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp + 8]
mov dword [ecx + 0xc], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [edx + 0x78], 0
jne 0x452c51
push str.RAISE___may_only_be_used_within_a_trigger_program
push edx
call fcn.00419050
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 1]
cmp al, 2
jne 0x452c69
mov eax, dword [edx + 0x74]
mov ecx, edx
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov al, byte [esi + 1]
mov esi, dword [esi + 8]
mov dword [esp + 0xc], esi
cmp al, 4
jne 0x452d13
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x452c99
push 0
push 4
push 0
mov edx, 0x45
mov ecx, edi
call fcn.00436f60
add esp, 0xc
mov edx, eax
jmp 0x452cd0
mov esi, dword [esp + 0xc]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x452cec
push esi
xor edx, edx
call fcn.00437920
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
jns 0x452cf4
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
push 0
push esi
lea edx, [eax + ecx*4]
mov ecx, edi
call fcn.00437ab0
mov eax, dword [ebp + 8]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [edx + 8]
movsx edi, al
test esi, esi
jne 0x452d3b
cmp dword [edx + 0x74], esi
jne 0x452d2e
mov eax, dword [edx]
test byte [eax + 0x4c], 8
jne 0x452d2e
mov byte [edx + 0x17], 1
mov ecx, edx
call fcn.00436cd0
mov edx, dword [esp + 0x10]
mov esi, eax
cmp edi, 2
jne 0x452d4c
mov ecx, dword [edx + 0x74]
test ecx, ecx
cmovne edx, ecx
mov byte [edx + 0x15], 1
push 0
push dword [esp + 0x10]
mov edx, 0x45
mov ecx, esi
push 0
push edi
push 0x713
call fcn.00437270
mov eax, dword [esi + 0x6c]
add esp, 0x14
test eax, eax
jle 0x453014
lea ecx, [eax + eax*4]
xor edx, edx
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x18], eax
lea ecx, [eax + 4]
mov eax, dword [eax]
dec dword [edx + 0x38]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], esi
test esi, esi
je 0x452e85
push 0x34
lea eax, [esp + 0x78]
push 0
push eax
call fcn.004c04c0
mov eax, dword [esi + 4]
add esp, 0xc
test eax, 0x4000
je 0x452ddf
mov eax, 0xc
jmp 0x452dee
and eax, 0x2000
neg eax
sbb eax, eax
and eax, 0xffffffe8
add eax, 0x34
push eax
lea eax, [esp + 0x78]
push esi
push eax
call fcn.004bf9c0
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x2c]
add esp, 0xc
lea edx, [esp + 0x74]
push eax
call fcn.004514c0
add esp, 4
lea ecx, [esp + 0x74]
mov esi, eax
nop dword [eax + eax]
mov edx, dword [ecx + 4]
test edx, 0x41000
je 0x452e42
test edx, 0x40000
je 0x452e3b
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 4]
jmp 0x452e3e
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x452e20
mov al, byte [ecx]
and dword [ecx + 4], 0xffffefff
push 0x34
mov byte [ecx + 0x26], al
lea eax, [esp + 0x44]
push 0
push eax
mov byte [ecx], 0xa8
mov dword [ecx + 0x1c], esi
call fcn.004c04c0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x40]
mov byte [esp + 0x40], 0x35
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
dec eax
test eax, eax
jle 0x452f7e
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x30], eax
jmp 0x452ea2
mov edx, esi
mov ecx, dword [ecx]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0xc]
cmovne eax, ecx
cmove esi, ecx
dec dword [edx + 0x38]
push 0x10
mov dword [esp + 0x54], eax
mov eax, dword [edx + 0x38]
push eax
push esi
push edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
call fcn.00453c80
mov edx, dword [esp + 0x24]
push dword [ebp + 8]
mov esi, dword [esp + 0x24]
mov ecx, esi
mov edx, dword [edx + 0x18]
call fcn.004532f0
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp dword [edi + 0x70], ecx
jg 0x452f0c
push 0
push dword [esp + 0x20]
mov edx, 0xb
mov ecx, edi
push 0
call fcn.00436f60
add esp, 0xc
jmp 0x452f3f
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x38]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x452f5d
push edx
mov edx, edi
call fcn.00437560
add esp, 4
jmp 0x452f66
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x14]
add ecx, 0x30
sub dword [esp + 0x30], 1
mov dword [esp + 0x14], ecx
jne 0x452ea0
jmp 0x452f82
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
test al, 1
je 0x452fa4
push dword [ebp + 8]
lea edx, [eax + eax*2]
mov ecx, esi
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + edx*8 - 0x14]
call fcn.004532f0
add esp, 4
jmp 0x452ff6
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x452fc4
push 0
push dword [ebp + 8]
mov edx, 0x49
mov ecx, edi
push 0
call fcn.00436f60
add esp, 0xc
jmp 0x452ff6
mov edx, dword [ebp + 8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x1c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
js 0x452469
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret