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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa8
push esi
push edi
mov edi, dword [ecx + 8]
mov esi, edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], 0
test esi, esi
je case.0x4451cb.21
movzx edx, byte [esi]
mov dword [esp + 0x24], edx
lea eax, [edx - 0x13]
cmp eax, 0xa2
ja case.0x4451cb.21
movzx eax, byte [eax + 0x446fc8]
jmp dword [eax*4 + 0x446f4c]
test dword [esi + 4], 0x200
jne case.0x4451cb.174
mov edx, dword [esi + 0xc]
test edx, edx
je case.0x4451cb.174
cmp byte [edx], 0xac
je 0x4451f0
mov esi, dword [esi + 0xc]
mov dword [esp + 0x3c], esi
jmp 0x4451a7
mov esi, dword [ebp + 8]
push esi
call fcn.00445170
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
cmp edx, esi
je 0x445254
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x445223
push 0
push esi
push edx
mov edx, 0x51
mov ecx, edi
call fcn.004284c0
add esp, 0xc
jmp 0x44524e
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x51
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 edx, esi
mov dword [esp + 0x10], esi
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x44527c
push 0
push 0
push edx
mov edx, 0xb3
mov ecx, edi
call fcn.004284c0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov eax, edx
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], 0xb3
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 eax, edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x28]
movsx eax, word [esi + 0x22]
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x10], edx
mov edx, dword [edx + 0x1c]
lea eax, [eax + eax*4]
mov dword [esp + 0x44], edx
cmp byte [ecx], 0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
jne 0x4452e2
mov eax, dword [edx + eax*4 + 0xc]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x28]
cmp byte [edi + 1], 0
mov edi, dword [esp + 0x34]
je case.0x4451cb.167
mov ecx, dword [edx + eax*4]
movsx esi, word [edx + eax*4 + 0x12]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x70], ecx
jg 0x44532c
mov edx, dword [ebp + 8]
mov ecx, edi
push edx
push esi
push eax
mov edx, 0x5e
call fcn.004284c0
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x44535a
mov edx, dword [esp + 0x10]
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], 0x5e
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
movzx eax, word [ecx + eax*4 + 0x10]
test ax, ax
js 0x446f42
movsx ecx, ax
mov eax, dword [esp + 0x28]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 8], 0x45
jne 0x446f42
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4453ac
push 0
push 0
push edx
mov edx, 0x57
mov ecx, edi
call fcn.004284c0
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], 0x57
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
jmp 0x446f32
test byte [esi + 4], 0x20
mov edx, dword [esi + 0x1c]
je 0x4454f1
mov edx, dword [ebp + 8]
push edx
mov edx, dword [esi + 0xc]
call fcn.00445170
mov edx, dword [esi + 0x2c]
add esp, 4
mov ecx, eax
mov dword [esp + 0x10], ecx
test edx, edx
je 0x445420
movsx ecx, word [esi + 0x20]
test ecx, ecx
js 0x445418
movsx eax, word [edx + 0x22]
cmp ecx, eax
jge 0x445418
mov eax, dword [edx + 4]
add ecx, ecx
mov al, byte [eax + ecx*8 + 8]
mov ecx, dword [esp + 0x10]
jmp 0x445423
mov ecx, dword [esp + 0x10]
mov al, 0x44
jmp 0x445423
mov al, byte [esi + 1]
movsx eax, al
cmp eax, 0x41
jle 0x4454e7
mov edx, dword [edi + 0x6c]
lea esi, [eax*2 + 0x4e4bb4]
cmp dword [edi + 0x70], edx
jg 0x445456
push 0
push 1
push ecx
mov edx, 0x60
mov ecx, edi
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x44548d
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x60
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 + 0x57], 0
je 0x4454ab
push esi
or edx, 0xffffffff
call fcn.00429070
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
jns 0x4454b3
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 0x4454dc
push 0xffffffffffffffff
push esi
mov edx, eax
mov ecx, edi
call fcn.00429290
mov eax, dword [esp + 0x18]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x4454e7
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xff
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
jns 0x445604
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x10], ecx
test ecx, ecx
jns 0x445601
movzx edx, word [esi + 0x20]
mov eax, dword [esi + 0x2c]
movsx esi, dx
mov dword [esp + 0x20], eax
test esi, esi
jns 0x445524
not ecx
mov eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
shl esi, 4
mov ecx, eax
add esi, dword [eax + 4]
call fcn.00452a40
movzx ecx, word [esi + 0xe]
cwde
sub eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
test cl, 0x60
je 0x44559a
test ecx, 0x100
je 0x445567
push dword [esi]
mov ecx, dword [esp + 0x10]
push str.generated_column_loop_on___s_
push ecx
call fcn.00407e20
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
or ecx, 0x100
mov word [esi + 0xe], cx
test cl, cl
jns 0x44558b
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
push eax
push esi
call fcn.004447f0
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, 0xfe7f
and word [esi + 0xe], cx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [esi + 8], 0x45
jne 0x446f45
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4455ca
mov edx, dword [ebp + 8]
mov ecx, edi
push 0
push edx
push eax
mov edx, 0x51
call fcn.004284c0
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x445387
mov edx, dword [esp + 0x10]
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], 0x51
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x445387
lea edx, [ecx - 1]
mov al, byte [esi + 2]
mov ecx, edi
push dword [ebp + 8]
mov byte [esp + 0x23], al
movsx eax, word [esi + 0x20]
push eax
push edx
mov edx, dword [esi + 0x2c]
call fcn.004449b0
add esp, 0xc
cmp byte [esp + 0x1f], 0
je 0x445659
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 0x6c]
dec ecx
cmp byte [eax + 0x57], 0
je 0x445642
mov ecx, 0x4f06d8
jmp 0x44564b
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
cmp byte [ecx], 0x5e
jne 0x445659
movzx eax, byte [esp + 0x1f]
mov word [ecx + 2], ax
cmp dword [esi + 0x2c], 0
jne 0x446f42
cmp byte [esi + 1], 0x45
jne 0x446f42
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x445681
push 0
push 0
push dword [ebp + 8]
jmp 0x445394
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], 0x57
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
jmp 0x446f32
mov edi, dword [ebp + 8]
mov edx, esi
push edi
push 0
call fcn.00444630
add esp, 8
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test dword [esi + 4], 0x2000
je 0x4456d0
mov esi, dword [esi + 0xc]
test esi, esi
jne case.0x4451cb.170
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 0x445701
push 0
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x47
call fcn.004284c0
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], 0x47
mov dword [eax + ecx*4 + 4], edx
jmp 0x446f2b
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x446f42
mov edx, ecx
lea esi, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x445730
sub edx, esi
and edx, 0x3fffffff
push 1
push edx
lea edx, [esp + 0x18]
call fcn.004080b0
mov ecx, dword [edi]
push 0
push 8
call fcn.00404910
mov edx, eax
add esp, 0x10
test edx, edx
je 0x44576c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [edx], eax
mov dword [edx + 4], ecx
push 0xfffffffffffffff4
push edx
push 0
push dword [ebp + 8]
mov edx, 0x99
mov ecx, edi
push 0
call fcn.004287f0
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.00428570
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 8]
add edx, 2
jne 0x4457b3
xor esi, esi
jmp 0x4457c7
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4457b8
sub esi, ecx
and esi, 0x3fffffff
mov ecx, dword [edi]
dec esi
push esi
call fcn.00408ff0
mov dword [esp + 0x14], 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 0x445801
push 0
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x4d
call fcn.004284c0
add esp, 0xc
mov esi, eax
jmp 0x44582f
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], 0x4d
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 + 0x57], 0
je 0x445852
mov edx, dword [esp + 0x10]
push edx
mov edx, 0xfffffffa
call fcn.00429070
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test esi, esi
jns 0x44585a
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 + 0x10]
je 0x445886
push 0xfffffffffffffffa
push edx
mov edx, eax
mov ecx, edi
call fcn.00429290
mov eax, dword [ebp + 8]
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x446f42
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xfa
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
movsx edx, word [esi + 0x20]
cmp dword [edi + 0x70], ecx
jg 0x4458c1
push 0
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x4e
call fcn.004284c0
add esp, 0xc
jmp 0x4458f3
mov esi, dword [esp + 0x3c]
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], 0x4e
mov dword [eax + ecx*4 + 8], edx
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 0x446f42
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0xe0]
test edx, edx
jne 0x445912
xor esi, esi
jmp 0x44593f
movsx ecx, word [esi + 0x20]
mov eax, 2
mov esi, dword [edx + 4]
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x10]
lea ecx, [edx + eax*4]
cmp dword [ecx], edi
mov edi, dword [esp + 0x34]
je 0x44593c
add eax, dword [ecx + 4]
cmp eax, esi
jl 0x445922
xor esi, esi
jmp 0x44593f
lea esi, [ecx + 8]
mov dword [edx], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x445962
push esi
or edx, 0xffffffff
call fcn.00429070
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]
call fcn.00445170
mov edx, dword [ebp + 8]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edx
je 0x4459f6
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4459bf
push 0
push edx
push eax
mov edx, 0x51
mov ecx, edi
call fcn.004284c0
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x4459f2
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x10], edx
mov ecx, dword [esi + 8]
xor edx, edx
call fcn.00453c90
mov ecx, dword [edi + 0x6c]
movsx esi, al
cmp dword [edi + 0x70], ecx
jg 0x445a2a
push 0
push esi
push dword [ebp + 8]
mov edx, 0x58
mov ecx, edi
call fcn.004284c0
mov eax, dword [esp + 0x1c]
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], 0x58
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 + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x28], 0x80
cmp edx, 0x2d
sete al
lea edx, [eax + 0x34]
mov dword [esp + 0x24], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x30], eax
mov cl, byte [eax]
mov byte [esp + 0x1f], cl
cmp cl, 0xb0
mov ecx, dword [esp + 0xc]
jne 0x445a9a
mov dl, byte [eax + 2]
mov byte [esp + 0x1f], dl
mov edx, dword [esp + 0x24]
cmp byte [esp + 0x1f], 0xb1
jne 0x445aae
mov edi, dword [eax + 0x14]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x34]
jmp 0x445ac3
cmp byte [esp + 0x1f], 0x8a
jne 0x445ae7
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
cmp dword [esi], 1
mov esi, dword [esp + 0x3c]
jle 0x445ae7
push dword [esp + 0x28]
push edx
push dword [ebp + 8]
mov edx, esi
call fcn.0043f2d0
add esp, 0xc
jmp 0x446ea2
lea edx, [esp + 0x2c]
push edx
mov edx, eax
call fcn.00447280
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
push eax
call fcn.00447280
mov ecx, dword [edi + 0x6c]
add esp, 4
mov dword [esp + 0x20], eax
cmp dword [edi + 0x70], ecx
jg 0x445b32
push 0
push dword [ebp + 8]
mov edx, 0x47
mov ecx, edi
push 1
call fcn.004284c0
add esp, 0xc
jmp 0x445b64
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], 0x47
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 eax, dword [esi + 4]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
shr eax, 0xa
and eax, 1
push eax
push dword [esp + 0x2c]
mov eax, dword [edi + 0x6c]
add eax, 2
push eax
push dword [esp + 0x2c]
push dword [esp + 0x20]
push edx
push dword [esi + 0x10]
mov edx, dword [esp + 0x4c]
call fcn.0043ef70
mov ecx, dword [edi + 0x6c]
add esp, 0x1c
cmp dword [esp + 0x28], 0x80
mov eax, dword [edi + 0x70]
jne 0x445bef
cmp eax, ecx
jg 0x445bc8
push 0
push dword [ebp + 8]
mov edx, 0x47
mov ecx, edi
push 0
call fcn.004284c0
add esp, 0xc
jmp 0x446ea2
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], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
jmp 0x4468b6
cmp eax, ecx
jg 0x445c12
push dword [esp + 0x20]
mov edx, 0x5c
mov ecx, edi
push dword [ebp + 8]
push dword [esp + 0x18]
call fcn.004284c0
add esp, 0xc
jmp 0x446ea2
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
jmp 0x446ea9
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x2c]
push eax
call fcn.00447280
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
push eax
call fcn.00447280
mov ecx, dword [edi + 0x6c]
add esp, 4
mov esi, eax
cmp dword [edi + 0x70], ecx
jg 0x445c9b
push dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov ecx, edi
push edx
mov edx, dword [esp + 0x2c]
push esi
call fcn.004284c0
add esp, 0xc
jmp 0x446ea2
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 byte [eax + ecx*4], dl
xor edx, edx
mov word [eax + ecx*4 + 2], dx
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov ecx, dword [esp + 0xc]
jmp 0x446ea9
mov eax, dword [esi + 0xc]
mov dl, byte [eax]
cmp dl, 0x9b
jne 0x445d00
mov esi, dword [ebp + 8]
mov edx, eax
push esi
push 1
call fcn.00444630
add esp, 8
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dl, 0x99
jne 0x445d91
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x446f42
mov edx, ecx
lea esi, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x445d20
sub edx, esi
and edx, 0x3fffffff
push 1
push edx
lea edx, [esp + 0x18]
call fcn.004080b0
movsd xmm0, qword [esp + 0x18]
xorps xmm0, xmmword [0x4e5d00]
mov ecx, dword [edi]
push 0
push 8
movsd qword [esp + 0x20], xmm0
call fcn.00404910
mov edx, eax
add esp, 0x10
test edx, edx
je 0x445d6f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [edx], eax
mov dword [edx + 4], ecx
push 0xfffffffffffffff4
push edx
push 0
push dword [ebp + 8]
mov edx, 0x99
mov ecx, edi
push 0
call fcn.004287f0
mov eax, dword [ebp + 8]
add esp, 0x14
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x2c]
mov byte [esp + 0x7c], 0x9b
push eax
lea edx, [esp + 0x80]
mov dword [esp + 0x84], 0x10800
mov dword [esp + 0x88], 0
call fcn.00447280
mov edx, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
push eax
call fcn.00447280
mov ecx, dword [edi + 0x6c]
add esp, 4
mov esi, eax
mov edx, dword [esp + 0x10]
cmp dword [edi + 0x70], ecx
jg 0x445dff
push dword [ebp + 8]
mov ecx, edi
push edx
push esi
mov edx, 0x6b
call fcn.004284c0
add esp, 0xc
jmp 0x446ea2
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], 0x6b
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
jmp 0x446ea9
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x2c]
push eax
call fcn.00447280
mov ecx, dword [edi + 0x6c]
add esp, 4
mov esi, eax
mov edx, dword [esp + 0x24]
cmp dword [edi + 0x70], ecx
jg 0x445e65
push 0
push dword [ebp + 8]
mov ecx, edi
push esi
call fcn.004284c0
add esp, 0xc
jmp 0x446ea2
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 [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x445cc4
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x2c]
push eax
call fcn.00447280
mov edx, eax
add esp, 4
mov eax, dword [esi + 0x10]
test eax, eax
je 0x445ec0
nop dword [eax + eax]
test dword [eax + 4], 0x2000
je 0x445ec0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x445eb0
mov eax, dword [eax + 8]
xor ecx, ecx
mov al, byte [eax + 4]
test al, al
sete cl
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp byte [esi + 2], 0x2d
mov esi, dword [edi + 0x6c]
sete cl
mov dword [esp + 0x20], ecx
xor ecx, ecx
test al, al
setne cl
mov dword [esp + 0x10], ecx
cmp dword [edi + 0x70], esi
jg 0x445f09
push ecx
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x5b
call fcn.004284c0
add esp, 0xc
mov esi, eax
jmp 0x445f37
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 + 0x10]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
mov edx, dword [ebp + 8]
cmp byte [eax + 0x57], 0
jne 0x445c44
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x20]
xor esi, dword [esp + 0x28]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
mov ecx, dword [esp + 0xc]
jmp 0x446ea9
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x445f86
push 0
push dword [ebp + 8]
mov edx, 0x47
mov ecx, edi
push 1
call fcn.004284c0
add esp, 0xc
jmp 0x445fb8
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], 0x47
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 + 0x2c]
mov ecx, dword [esp + 0xc]
push eax
call fcn.00447280
mov esi, dword [edi + 0x6c]
add esp, 4
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x70], esi
jg 0x445fef
push 0
push 0
push eax
mov ecx, edi
call fcn.004284c0
add esp, 0xc
mov esi, eax
jmp 0x44602a
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*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 + 0x10]
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 0x44604d
push 0
push dword [ebp + 8]
mov edx, 0x47
mov ecx, edi
push 0
call fcn.004284c0
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x44607f
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], 0x47
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 ecx, dword [edi + 0x6c]
mov dword [esp + 0x10], ecx
cmp byte [eax + 0x57], 0
je 0x44609f
mov eax, 0x4f06d8
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xc]
jmp 0x446ea9
lea eax, [ecx - 1]
test esi, esi
cmovns eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xc]
jmp 0x446ea9
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4460e8
movzx edx, word [esi + 0x22]
test dx, dx
js 0x4460e8
movsx edx, dx
cmp edx, dword [eax + 0x2c]
jge 0x4460e8
mov eax, dword [eax + 0x28]
lea ecx, [edx + edx*4]
mov eax, dword [eax + ecx*4 + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push esi
push str.misuse_of_aggregate:__T__
push ecx
call fcn.00407e20
add esp, 0xc
jmp 0x446ea2
test dword [esi + 4], 0x1000000
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x30], 0
mov al, byte [eax + 0x54]
mov byte [esp + 0x38], al
je 0x44612e
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0x38]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [ecx + 0x17], 0
je 0x44617f
mov eax, 2
mov dword [esp + 0x4c], fcn.00441690
mov edx, esi
mov word [esp + 0x5c], ax
lea ecx, [esp + 0x48]
mov dword [esp + 0x50], 0x441570
mov dword [esp + 0x60], 0
call fcn.0043bbd0
cmp word [esp + 0x5c], 0
je 0x44617f
mov ecx, dword [esp + 0xc]
mov edx, esi
push 0xffffffffffffffff
call fcn.00447070
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
mov dword [esp + 0x40], eax
test eax, eax
je 0x44618e
mov eax, dword [eax]
jmp 0x446190
xor eax, eax
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x20]
push 0
push dword [esp + 0x3c]
mov dword [esp + 0x30], eax
push eax
call fcn.0045b990
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
je 0x446560
cmp dword [eax + 0x14], 0
jne 0x446560
mov ecx, dword [eax + 4]
test ecx, 0x400000
je 0x4461e7
push dword [ebp + 8]
mov edx, dword [esp + 0x44]
push dword [eax + 8]
mov ecx, dword [esp + 0x14]
call fcn.00444de0
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, 0x280000
je 0x446225
test dword [esi + 4], 0x40000000
je 0x446225
test ecx, 0x80000
jne 0x446213
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x80
or eax, 0
jne 0x446225
push esi
push str.unsafe_use_of__T__
push dword [esp + 0x14]
call fcn.00407e20
add esp, 0xc
mov edx, dword [esp + 0x28]
xor eax, eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
test edx, edx
jle 0x4462e9
mov edi, dword [esp + 0xc]
add ecx, 8
mov dword [esp + 0x44], ecx
xor esi, esi
mov dword [esp + 0x10], ecx
nop dword [eax]
cmp eax, 0x20
jae 0x446295
mov edx, dword [ecx]
mov ecx, 1
mov word [esp + 0x5c], cx
mov dword [esp + 0x4c], fcn.00441690
mov dword [esp + 0x50], 0x441570
mov dword [esp + 0x60], 0
test edx, edx
je 0x446292
lea ecx, [esp + 0x48]
call fcn.0043bbd0
cmp word [esp + 0x5c], 0
mov eax, dword [esp + 0x2c]
je 0x446295
bts esi, eax
mov ecx, dword [esp + 0x38]
test byte [ecx + 4], 0x20
je 0x4462bb
cmp dword [esp + 0x30], 0
jne 0x4462bb
mov edx, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [edx]
call fcn.0043edc0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
inc eax
mov edx, dword [esp + 0x28]
add ecx, 0x14
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], ecx
cmp eax, edx
jl 0x446250
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x3c]
jmp 0x4462f0
lea eax, [ecx + 8]
mov dword [esp + 0x44], eax
test ecx, ecx
je 0x4463ca
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0xc]
je 0x446318
mov eax, dword [ecx + 0x2c]
lea edi, [eax + 1]
add eax, edx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x34]
mov dword [ecx + 0x2c], eax
jmp 0x446386
cmp edx, 1
jne 0x446353
mov al, byte [ecx + 0x13]
test al, al
jne 0x446337
inc dword [ecx + 0x2c]
mov edx, dword [esp + 0x40]
mov eax, dword [ecx + 0x2c]
add edx, 8
mov dword [esp + 0x24], eax
jmp 0x44638a
mov edx, dword [esp + 0x40]
dec al
mov byte [ecx + 0x13], al
add edx, 8
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [esp + 0x24], eax
jmp 0x44638a
mov esi, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x24], eax
cmp edx, esi
jg 0x44636f
add eax, edx
mov dword [ecx + 0x20], eax
mov eax, esi
sub eax, edx
mov dword [ecx + 0x1c], eax
jmp 0x446382
mov eax, dword [ecx + 0x2c]
lea edi, [eax + 1]
add eax, edx
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x34]
mov dword [ecx + 0x2c], eax
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
test al, 0xc0
je 0x4463b0
mov edx, dword [edx]
mov dword [esp + 0x2c], edx
mov dl, byte [edx]
cmp dl, 0xa7
je 0x4463a7
cmp dl, 0xa9
jne 0x4463b0
mov edx, dword [esp + 0x2c]
and al, 0xc0
mov byte [edx + 2], al
mov edx, dword [esp + 0x40]
push 3
push 0
push dword [esp + 0x2c]
call fcn.004474e0
mov ecx, dword [esp + 0x4c]
add esp, 0xc
jmp 0x4463d2
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x28]
cmp eax, 2
jl 0x4463fe
test dword [esi + 4], 0x100
je 0x446402
push dword [ecx + 0x1c]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
push eax
call fcn.0048a8f0
add esp, 8
mov dword [esp + 0x38], eax
jmp 0x44640e
test eax, eax
jle 0x44640a
mov ecx, dword [esp + 0x44]
push dword [ecx]
jmp 0x4463e7
mov eax, dword [esp + 0x38]
test byte [eax + 4], 0x20
je 0x4464d8
cmp dword [esp + 0x30], 0
jne 0x44642a
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x44644b
push 0
push 0
push 0
mov edx, 0x55
mov ecx, edi
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x446482
mov esi, dword [esp + 0x3c]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x55
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 + 0x57], 0
je 0x44649d
push dword [esp + 0x30]
mov edx, 0xfffffffe
call fcn.00429070
add esp, 4
jmp 0x4464d8
test edx, edx
jns 0x4464a5
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 ecx, [eax + ecx*4]
je 0x4464c9
push 0xfffffffffffffffe
push dword [esp + 0x34]
mov edx, ecx
mov ecx, edi
call fcn.00429290
add esp, 8
jmp 0x4464d8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4464d8
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], 0xfe
movzx eax, byte [esi + 2]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0xc]
mov ecx, esi
mov edx, dword [esp + 0x10]
push eax
push dword [esp + 0x3c]
push edi
push dword [ebp + 8]
push dword [esp + 0x34]
call fcn.004288f0
add esp, 0x14
test edi, edi
je 0x446f42
cmp dword [esp + 0x10], 0
jne 0x446f42
cmp edi, 1
jne 0x446544
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x446f42
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x446f42
movzx eax, al
mov dword [esi + eax*4 + 0x98], ecx
inc byte [esi + 0x13]
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, dword [esi + 0x1c]
jle 0x446f42
mov eax, dword [esp + 0x24]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x1c], edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push esi
push str.unknown_function:__T__
push dword [esp + 0x14]
call fcn.00407e20
add esp, 0xc
jmp 0x446ea2
mov eax, dword [ecx]
cmp byte [eax + 0x57], 0
jne 0x44555f
cmp edx, 0x8a
jne 0x4465c1
test dword [esi + 4], 0x1000
je 0x4465c1
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
je 0x4465c1
cmp dword [ecx + 0x24], 0
jne 0x446ea6
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push ecx
call fcn.00407e20
add esp, 0x10
jmp 0x446ea2
mov edx, esi
call fcn.00443080
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0xc]
cmp dword [edi + 0x1c], 0
je 0x4465df
mov al, byte [edi + 2]
cmp byte [ecx + 0x1a], al
jbe 0x4465f5
mov edx, edi
call fcn.00443080
mov edx, dword [esp + 0xc]
mov dword [edi + 0x1c], eax
mov al, byte [edx + 0x1a]
mov byte [edi + 2], al
jmp 0x4465f7
mov edx, ecx
cmp byte [edi], 0xb0
movzx eax, al
mov dword [esp + 0x10], eax
movzx eax, byte [edi]
mov ecx, dword [esp + 0x10]
cmovne ecx, eax
cmp cl, 0xb1
jne 0x446617
mov eax, dword [edi + 0x14]
mov eax, dword [eax]
jmp 0x44662b
cmp cl, 0x8a
jne 0x446626
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
jmp 0x44662b
mov eax, 1
mov ecx, dword [esi + 0x1c]
cmp ecx, eax
je 0x446642
push eax
push ecx
push str._d_columns_assigned__d_values
push edx
call fcn.00407e20
add esp, 0x10
movsx eax, word [esi + 0x20]
add eax, dword [edi + 0x1c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0x38]
dec eax
mov dword [esp + 0x10], eax
dec eax
mov dword [ecx + 0x38], eax
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x20], eax
cmp dword [edi + 0x70], ecx
jg 0x44667f
push 0
push dword [ebp + 8]
mov edx, 0x4b
mov ecx, edi
push 0
call fcn.004284c0
add esp, 0xc
jmp 0x4466b1
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], 0x4b
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 + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, esi
push dword [esp + 0x14]
call fcn.004436b0
mov ecx, dword [edi + 0x6c]
add esp, 8
mov esi, dword [ebp + 8]
cmp dword [edi + 0x70], ecx
jg 0x4466e8
push 0
push esi
push 1
mov edx, 0x47
mov ecx, edi
call fcn.004284c0
add esp, 0xc
jmp 0x446717
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
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 + 0x10]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x446735
push edx
mov edx, edi
call fcn.00428cd0
add esp, 4
jmp 0x44673e
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 0x44675c
push 0
push 0
push esi
mov edx, 0x56
mov ecx, edi
call fcn.004284c0
add esp, 0xc
jmp 0x44678b
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x56
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
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4467b0
push edx
mov edx, edi
call fcn.00428cd0
mov eax, dword [ebp + 8]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
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
mov edi, dword [ebp + 8]
mov edx, esi
push 0
push 0
push edi
call fcn.004476e0
add esp, 0xc
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movzx edx, word [esi + 0x20]
mov ecx, dword [esi + 0x2c]
movsx eax, dx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
call fcn.00452a40
movsx ecx, ax
mov eax, dword [esp + 0x10]
inc ecx
movsx edx, word [eax + 0x22]
inc edx
imul edx, dword [esi + 0x1c]
add edx, ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x446828
push 0
push dword [ebp + 8]
mov ecx, edi
push edx
mov edx, 0x9d
call fcn.004284c0
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x446856
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], 0x9d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x20]
test ecx, ecx
js 0x445c44
mov eax, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 8], 0x45
jne 0x445c44
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x446897
push 0
push 0
push edx
mov edx, 0x57
mov ecx, edi
call fcn.004284c0
add esp, 0xc
jmp 0x446ea2
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x57
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 ecx, dword [esp + 0xc]
jmp 0x446ea9
push str.row_value_misused
push ecx
call fcn.00407e20
add esp, 8
jmp 0x446ea2
mov al, byte [ecx + 0x17]
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0x1c]
mov byte [esp + 0x1f], al
mov dword [esp + 0x10], ecx
cmp dword [edi + 0x70], ecx
jg 0x446912
push 0
push 0
push edx
mov edx, 0x12
mov ecx, edi
call fcn.004284c0
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x446945
mov esi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x12
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 eax, dword [esp + 0xc]
mov ecx, eax
mov edx, dword [ebp + 8]
push edx
mov byte [eax + 0x17], 0
mov edx, dword [esi + 0xc]
call fcn.00445170
mov cl, byte [esp + 0x23]
mov edx, eax
mov eax, dword [esp + 0x10]
add esp, 4
mov esi, dword [esp + 0x10]
mov byte [eax + 0x17], cl
mov ecx, dword [edi]
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x20], eax
cmp byte [ecx + 0x57], 0
je 0x446985
mov eax, 0x4f06d8
jmp 0x446994
dec eax
test esi, esi
cmovns eax, esi
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x20]
mov dword [eax + 8], ecx
test esi, esi
jns 0x4469a3
mov esi, dword [edi + 0x6c]
dec esi
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4469bc
mov ecx, dword [esp + 0xc]
mov eax, 0x4f06d8
mov dword [eax + 0xc], edx
jmp 0x446ea9
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 0xc], edx
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0xc]
jmp 0x446ea9
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x20], 0
lea edx, [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [esp + 0x30], edx
mov dword [ecx + 0x38], eax
mov esi, dword [esi + 0xc]
mov dword [esp + 0x28], eax
test esi, esi
je 0x446a9a
mov ecx, dword [esp + 0x40]
mov edx, esi
push 0
push 0
call fcn.00440470
mov ecx, dword [esp + 0x48]
add esp, 8
mov dword [esp + 0x20], eax
cmp byte [ecx + 0x57], 0
je 0x446a46
test eax, eax
je 0x446ea2
mov edx, eax
call fcn.004402a0
jmp 0x446ea2
lea ecx, [esp + 0x2c]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x10]
call fcn.00444d30
mov ecx, dword [esp + 0x24]
add esp, 4
mov edx, eax
call fcn.00444cf0
push 0x34
lea eax, [esp + 0x4c]
push 0
push eax
call fcn.004bb940
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x48]
mov byte [esp + 0x48], 0x35
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x38]
dec eax
test eax, eax
jle 0x446c54
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x10], eax
test esi, esi
je 0x446b92
jmp 0x446ac2
mov ecx, esi
mov eax, dword [edx]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x38]
dec eax
push 0x10
push eax
push dword [esp + 0x44]
mov dword [esp + 0x30], eax
push ecx
mov dword [ecx + 0x38], eax
call fcn.00447d40
mov edx, dword [esp + 0x40]
push dword [ebp + 8]
mov esi, dword [esp + 0x20]
mov ecx, esi
mov edx, dword [edx + 0x14]
call fcn.00447380
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp dword [edi + 0x70], ecx
jg 0x446b19
push 0
push dword [esp + 0x2c]
mov edx, 8
mov ecx, edi
push 0
call fcn.004284c0
add esp, 0xc
jmp 0x446b4c
mov edx, dword [esp + 0x28]
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
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 + 0x24]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x446b6a
push edx
mov edx, edi
call fcn.00428cd0
add esp, 4
jmp 0x446b73
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x30]
add edx, 0x28
sub dword [esp + 0x10], 1
mov dword [esp + 0x30], edx
jne 0x446ac0
jmp 0x446c58
mov ecx, esi
mov eax, dword [edx]
mov edx, dword [ecx + 0x38]
dec edx
push 0x10
push edx
push eax
push ecx
mov dword [esp + 0x4c], edx
mov dword [ecx + 0x38], edx
call fcn.00447d40
mov edx, dword [esp + 0x40]
push dword [ebp + 8]
mov esi, dword [esp + 0x20]
mov ecx, esi
mov edx, dword [edx + 0x14]
call fcn.00447380
mov ecx, dword [edi + 0x6c]
add esp, 0x14
cmp dword [edi + 0x70], ecx
jg 0x446be2
push 0
push dword [esp + 0x2c]
mov edx, 8
mov ecx, edi
push 0
call fcn.004284c0
add esp, 0xc
jmp 0x446c15
mov edx, dword [esp + 0x28]
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
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 + 0x3c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x446c33
push edx
mov edx, edi
call fcn.00428cd0
add esp, 4
jmp 0x446c3c
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x30]
add edx, 0x28
sub dword [esp + 0x10], 1
mov dword [esp + 0x30], edx
jne 0x446b90
jmp 0x446c58
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
test al, 1
je 0x446c7a
push dword [ebp + 8]
lea edx, [eax + eax*4]
mov ecx, esi
mov eax, dword [esp + 0x38]
mov edx, dword [eax + edx*4 - 0xc]
call fcn.00447380
add esp, 4
jmp 0x446ccc
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x446c9a
push 0
push dword [ebp + 8]
mov edx, 0x4b
mov ecx, edi
push 0
call fcn.004284c0
add esp, 0xc
jmp 0x446ccc
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], 0x4b
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 [esp + 0x20]
test eax, eax
je 0x446cdf
mov ecx, dword [esp + 0x40]
mov edx, eax
call fcn.004402a0
mov edx, dword [edi + 0x6c]
mov eax, dword [edi]
lea ecx, [edx + edx*4]
shl ecx, 2
cmp byte [eax + 0x57], 0
je 0x446cf7
mov eax, 0x4f06d8
jmp 0x446cff
mov eax, dword [edi + 0x68]
add eax, 0xffffffec
add eax, ecx
cmp byte [eax], 0x50
jne 0x446d15
test edx, edx
jle 0x446d15
mov eax, dword [edi + 0x68]
mov edx, 1
mov word [ecx + eax - 0x12], dx
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x28]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x446d36
push edx
mov edx, edi
call fcn.00428cd0
add esp, 4
jmp 0x446ea2
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
jmp 0x446ea2
cmp dword [ecx + 0x78], 0
jne 0x446d66
cmp byte [ecx + 0x12], 0
jne 0x446d66
push str.RAISE___may_only_be_used_within_a_trigger_program
push ecx
call fcn.00407e20
add esp, 8
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [esi + 1], 2
jne 0x446d7c
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov ecx, dword [esp + 0xc]
mov al, byte [esi + 1]
mov esi, dword [esi + 8]
mov dword [esp + 0x10], esi
cmp al, 4
jne 0x446e21
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x446daf
push 0
push 4
push 0
mov edx, 0x46
mov ecx, edi
call fcn.004284c0
add esp, 0xc
mov edx, eax
jmp 0x446de6
mov esi, dword [esp + 0x10]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*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], 4
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x446dfe
push esi
xor edx, edx
call fcn.00429070
add esp, 4
jmp 0x446ea2
test edx, edx
jns 0x446e06
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.00429290
add esp, 8
jmp 0x446ea2
cmp dword [ecx + 0x78], 0
mov edi, 1
mov esi, dword [ecx + 8]
mov edx, 0x713
movsx eax, al
cmovne edi, edx
mov dword [esp + 0x20], eax
test esi, esi
jne 0x446e60
cmp dword [ecx + 0x74], esi
jne 0x446e51
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x446e51
mov byte [ecx + 0x17], 1
call fcn.004282e0
mov ecx, dword [esp + 0xc]
mov esi, eax
mov eax, dword [esp + 0x20]
cmp eax, 2
jne 0x446e75
mov ecx, dword [ecx + 0x74]
test ecx, ecx
mov edx, dword [esp + 0xc]
cmovne edx, ecx
mov byte [edx + 0x15], 1
push 0
push dword [esp + 0x14]
mov edx, 0x46
mov ecx, esi
push 0
push eax
push edi
call fcn.004287f0
mov eax, dword [esi + 0x6c]
add esp, 0x14
test eax, eax
jle 0x446ea2
lea ecx, [eax + eax*4]
xor edx, edx
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x446ec5
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x446ec5
movzx eax, al
mov dword [ecx + eax*4 + 0x98], esi
inc byte [ecx + 0x13]
mov esi, dword [esp + 0x44]
test esi, esi
je 0x446ee1
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x446ee1
movzx eax, al
mov dword [ecx + eax*4 + 0x98], esi
inc byte [ecx + 0x13]
mov eax, edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x446f10
push 0
push dword [ebp + 8]
mov edx, 0x4b
mov ecx, edi
push 0
call fcn.004284c0
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], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov eax, dword [ebp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret