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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [ecx + 8]
push ebx
push esi
xor ebx, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], ebx
push edi
mov edi, edx
mov dword [esp + 0x1c], edi
test eax, eax
jne 0x1002f251
xor eax, eax
jmp 0x1002fff9
test edi, edi
je case.0x1002f27e.117
movzx esi, byte [edi]
cmp esi, 0x6a
jbe 0x1002fa3d
lea eax, [esi - 0x6b]
mov edx, esi
mov dword [esp + 0x14], edx
cmp eax, 0x45
ja case.0x1002f27e.111
movzx eax, byte [eax + 0x1003005c]
jmp dword [eax*4 + 0x10030000]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x1c], edi
jmp 0x1002f251
movsx eax, word [edi + 0x22]
mov edx, dword [edi + 0x28]
imul eax, eax, 0x18
add eax, dword [edx + 0x1c]
cmp byte [edx], bl
jne 0x1002f2a7
mov eax, dword [eax + 0x10]
jmp 0x1002fff9
cmp byte [edx + 1], bl
je case.0x1002f27e.162
mov ebx, dword [ebp + 8]
push ebx
push dword [eax + 0xc]
push dword [edx + 8]
push 0x5a
mov ecx, dword [esp + 0x20]
pop edx
call fcn.1001d593
mov eax, ebx
jmp 0x1002fff6
test byte [edi + 4], 8
mov esi, dword [edi + 0x1c]
je 0x1002f35a
mov esi, dword [ebp + 8]
mov edx, dword [edi + 0xc]
push esi
call fcn.1002f21c
pop ecx
movsx ecx, word [edi + 0x20]
mov dword [esp + 0x1c], eax
test ecx, ecx
js 0x1002f301
mov eax, dword [edi + 0x2c]
add ecx, ecx
mov eax, dword [eax + 4]
mov cl, byte [eax + ecx*8 + 0xd]
mov eax, dword [esp + 0x1c]
jmp 0x1002f303
mov cl, 0x44
movsx edi, cl
cmp edi, 0x41
jle 0x1002f351
cmp eax, esi
je 0x1002f327
mov ecx, dword [esp + 0x10]
push ebx
push esi
push eax
push 0x4f
pop edx
call fcn.1001d593
add esp, 0xc
mov dword [esp + 0x1c], esi
mov eax, esi
mov ecx, dword [esp + 0x10]
push ebx
push 1
push eax
push 0x5b
pop edx
call fcn.1001d593
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, eax
lea eax, [edi*2 + 0x100839a4]
push 0xffffffffffffffff
push eax
call fcn.1001dc39
pop ecx
pop ecx
mov eax, dword [esp + 0x1c]
jmp 0x1002fff9
test esi, esi
jns 0x1002f3b3
mov esi, dword [ecx + 0x34]
mov dword [esp + 0x1c], esi
test esi, esi
jns 0x1002f3b2
movzx eax, word [edi + 0x20]
movsx edx, ax
test ax, ax
js 0x1002f3a9
mov eax, dword [edi + 0x2c]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xd], 0x45
jne 0x1002f3a9
sub edx, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
push ebx
push esi
push edx
push 0x4f
pop edx
call fcn.1001d593
add esp, 0xc
push ebx
push ebx
push esi
push 0x54
jmp 0x1002ffea
sub edx, esi
mov eax, edx
jmp 0x1002fff9
dec esi
mov al, byte [edi + 0x26]
push dword [ebp + 8]
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [edi + 0x2c]
mov byte [esp + 0x2b], al
movsx eax, word [edi + 0x20]
push eax
push esi
call fcn.1002f08d
mov al, byte [esp + 0x33]
add esp, 0xc
test al, al
je 0x1002f43f
movzx edx, al
mov ecx, ebx
call fcn.1001da5a
jmp 0x1002f43f
mov esi, dword [ebp + 8]
mov edx, edi
push esi
push ebx
call fcn.1002ef9c
pop ecx
pop ecx
mov eax, esi
jmp 0x1002fff9
mov ecx, edi
call fcn.1002c286
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 8]
push ebx
cmp byte [eax + 4], cl
sete cl
push ecx
push 0x46
jmp 0x1002f2b8
mov esi, dword [ebp + 8]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x10]
push esi
push ebx
call fcn.1002ef2b
jmp 0x1002f3f4
push dword [edi + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
call fcn.1001d5fd
pop ecx
mov eax, dword [ebp + 8]
jmp 0x1002fff9
mov esi, dword [edi + 8]
lea ecx, [esi + 2]
call fcn.10007e26
lea edx, [esi + 2]
mov esi, dword [esp + 0x10]
lea edi, [eax - 1]
mov ecx, dword [esi]
push edi
call fcn.10008d0b
pop ecx
push 0xfffffffffffffff9
push eax
push ebx
mov ebx, dword [ebp + 8]
mov eax, edi
cdq
mov ecx, esi
sub eax, edx
push ebx
sar eax, 1
push eax
push 0x4b
pop edx
call fcn.1001d6b7
add esp, 0x14
mov eax, ebx
jmp 0x1002fff9
movsx eax, word [edi + 0x20]
mov esi, dword [esp + 0x10]
mov ecx, esi
push ebx
push dword [ebp + 8]
push eax
push 0x4c
pop edx
call fcn.1001d593
mov eax, dword [edi + 8]
add esp, 0xc
cmp byte [eax + 1], bl
je 0x1002f43f
mov ecx, dword [esp + 0x18]
movsx edx, word [edi + 0x20]
mov ecx, dword [ecx + 0xd8]
call fcn.1000918b
mov dword [ecx], ebx
mov edx, eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.1001dcab
jmp 0x1002f43e
mov eax, dword [edi + 0x1c]
jmp 0x1002fff9
mov edx, dword [edi + 0xc]
mov al, byte [edx]
cmp al, 0x96
jne 0x1002f4f0
mov ebx, dword [ebp + 8]
push ebx
push 1
call fcn.1002ef9c
pop ecx
pop ecx
jmp 0x1002f482
cmp al, 0x94
jne 0x1002f508
mov ebx, dword [ebp + 8]
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x10]
push ebx
push 1
call fcn.1002ef2b
jmp 0x1002f4ec
lea eax, [esp + 0x20]
mov byte [esp + 0x7c], 0x96
push eax
lea edx, [esp + 0x80]
mov dword [esp + 0x84], 0x4400
mov dword [esp + 0x88], ebx
call fcn.10030157
mov edx, dword [edi + 0xc]
mov esi, eax
pop ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
call fcn.10030157
mov edi, dword [ebp + 8]
pop ecx
push edi
push esi
push eax
push 0x68
pop edx
mov ecx, dword [esp + 0x1c]
call fcn.1001d593
add esp, 0xc
jmp 0x1002f5c6
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x20]
push eax
call fcn.10030157
pop ecx
mov ecx, dword [edi + 0x10]
mov esi, eax
call fcn.1002c286
xor ecx, ecx
cmp byte [edi + 0x26], 0x2d
mov edi, dword [ebp + 8]
sete cl
mov eax, dword [eax + 8]
mov dl, byte [eax + 4]
xor eax, eax
test dl, dl
sete al
xor ecx, eax
xor eax, eax
push ecx
mov ecx, dword [esp + 0x14]
test dl, dl
setne al
push eax
push edi
push esi
push 0x58
pop edx
call fcn.1001d7e6
add esp, 0x10
jmp 0x1002f5c6
mov eax, dword [edi + 0x28]
test eax, eax
jne 0x1002f5f6
push dword [edi + 8]
push str.misuse_of_aggregate:__s__
push ecx
call fcn.10007f49
add esp, 0xc
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
call fcn.100315f8
mov edx, dword [esp + 0x30]
test edx, edx
je 0x1002f5ef
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x1002f5ef
movzx eax, al
mov dword [ecx + eax*4 + 0x94], edx
inc byte [ecx + 0x13]
mov eax, edi
jmp 0x1002fff9
movsx ecx, word [edi + 0x22]
mov eax, dword [eax + 0x28]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 8]
jmp 0x1002fff9
test dword [edi + 4], 0x1000000
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], ebx
mov al, byte [eax + 0x4e]
mov byte [esp + 0x38], al
je 0x1002f631
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + 0x38]
jmp 0x1002fff9
cmp byte [ecx + 0x17], bl
je 0x1002f659
push ebx
push 2
pop edx
mov ecx, edi
call fcn.1002db35
pop ecx
test eax, eax
je 0x1002f659
mov ecx, dword [esp + 0x18]
mov edx, edi
push 0xffffffffffffffff
call fcn.100300a2
pop ecx
jmp 0x1002fff9
test dword [edi + 4], 0x4000
je 0x1002f72e
mov esi, ebx
mov dword [esp + 0x28], esi
mov eax, ebx
mov ecx, dword [edi + 8]
mov edx, ecx
push ebx
push dword [esp + 0x3c]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x3c]
push eax
mov dword [esp + 0x20], eax
call fcn.1003a001
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x1002f93a
cmp dword [ecx + 0x14], ebx
jne 0x1002f93a
mov eax, dword [ecx + 4]
test eax, 0x200
je 0x1002f744
mov esi, dword [esp + 0x18]
mov ecx, esi
mov edi, dword [ebp + 8]
push edi
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
call fcn.100301cf
mov eax, dword [esp + 0x18]
pop ecx
cmp eax, 1
jle 0x1002f71c
mov ecx, dword [esp + 0x28]
add ecx, 0x1c
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x10]
push ebx
push dword [esp + 0x30]
push edi
push 0x33
pop edx
call fcn.1001d593
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ecx, esi
mov edx, dword [edx]
push edi
call fcn.100301cf
add dword [esp + 0x20], 0x18
sub dword [esp + 0x38], 1
pop ecx
jne 0x1002f6ec
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
call fcn.1001d880
jmp 0x1002f5c6
mov esi, dword [edi + 0x14]
mov dword [esp + 0x28], esi
test esi, esi
je 0x1002f66c
mov eax, dword [esi]
jmp 0x1002f66e
test eax, 0x400
je 0x1002f75f
push dword [ebp + 8]
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x1c]
call fcn.1002f21c
jmp 0x1002f653
mov ecx, dword [esp + 0x14]
mov eax, ebx
mov dword [esp + 0x30], eax
test ecx, ecx
jle 0x1002f7e9
mov edi, dword [esp + 0x18]
lea edx, [esi + 4]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x20], edx
cmp eax, 0x20
jae 0x1002f7ac
mov ecx, dword [esp + 0x20]
xor edx, edx
push ebx
inc edx
mov ecx, dword [ecx]
call fcn.1002db35
mov edx, dword [esp + 0x24]
test eax, eax
mov eax, dword [esp + 0x34]
pop ecx
je 0x1002f7a8
mov ecx, dword [esp + 0x2c]
bts ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
test byte [esi + 4], 0x20
je 0x1002f7d1
cmp dword [esp + 0x3c], ebx
jne 0x1002f7d1
mov edx, dword [edx]
mov ecx, edi
call fcn.1002c2c1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
inc eax
add edx, 0x18
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], edx
cmp eax, ecx
jl 0x1002f77c
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
test esi, esi
mov esi, dword [esp + 0x18]
je 0x1002f85f
cmp dword [esp + 0x2c], ebx
je 0x1002f80a
mov eax, dword [esi + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x20], edx
mov ecx, edx
mov dword [esi + 0x2c], eax
jmp 0x1002f819
mov edx, ecx
mov ecx, esi
call fcn.10031611
mov ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
test byte [eax + 4], 0xc0
je 0x1002f84f
mov ecx, dword [edx + 4]
mov cl, byte [ecx]
mov byte [esp + 0x27], cl
cmp cl, 0xa2
mov ecx, dword [esp + 0x20]
je 0x1002f840
cmp byte [esp + 0x27], 0xa4
jne 0x1002f84f
mov edi, dword [edx + 4]
mov al, byte [eax + 4]
and al, 0xc0
mov byte [edi + 0x26], al
mov edi, dword [esp + 0x1c]
push 3
push ebx
push ecx
mov ecx, esi
call fcn.100302a9
add esp, 0xc
jmp 0x1002f863
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x14]
cmp eax, 2
jl 0x1002f88d
test byte [edi + 4], 0x80
je 0x1002f891
mov ecx, dword [esp + 0x28]
push dword [ecx + 0x1c]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push eax
call fcn.10050023
pop ecx
pop ecx
mov edi, eax
jmp 0x1002f89e
test eax, eax
jle 0x1002f89a
mov ecx, dword [esp + 0x28]
push dword [ecx + 4]
jmp 0x1002f879
mov edi, dword [esp + 0x38]
test byte [edi + 4], 0x20
je 0x1002f8dc
cmp dword [esp + 0x3c], ebx
jne 0x1002f8b5
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
push ebx
push ebx
push ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
push 0x52
pop edx
call fcn.1001d593
add esp, 0xc
mov edx, eax
mov ecx, ebx
push 0xfffffffffffffffe
push dword [esp + 0x40]
call fcn.1001dc39
pop ecx
pop ecx
jmp 0x1002f8e0
mov ebx, dword [esp + 0x10]
mov edx, dword [esi + 0x34]
mov ecx, ebx
push 0xfffffffffffffff8
push edi
push dword [ebp + 8]
mov edi, dword [esp + 0x2c]
neg edx
push edi
push dword [esp + 0x3c]
sbb edx, edx
add edx, 0x3f
call fcn.1001d6b7
mov eax, dword [esp + 0x28]
add esp, 0x14
movzx edx, al
mov ecx, ebx
call fcn.1001da5a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1002f43f
cmp dword [esp + 0x2c], 0
jne 0x1002f43f
push eax
mov edx, edi
mov ecx, esi
call fcn.10031647
add esp, 4
jmp 0x1002f43f
push dword [esp + 0x40]
push str.unknown_function:__s__
push dword [esp + 0x20]
jmp 0x1002f5bb
cmp edx, 0x86
jne 0x1002fb2f
mov eax, dword [edi + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
je 0x1002fb2f
push 1
push dword [eax]
push str.sub_select_returns__d_columns___expected__d
push ecx
call fcn.10007f49
add esp, 0x10
jmp 0x1002f5c3
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x1c], ebx
jne 0x1002f997
mov edx, eax
call fcn.1002e79e
mov ecx, eax
mov eax, dword [edi + 0xc]
mov dword [eax + 0x1c], ecx
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x1002f9bc
mov ecx, eax
call fcn.1002c54c
cmp edx, eax
je 0x1002f9bc
push eax
push edx
push str._d_columns_assigned__d_values
push dword [esp + 0x24]
call fcn.10007f49
add esp, 0x10
mov eax, dword [edi + 0xc]
movsx ecx, word [edi + 0x20]
add ecx, dword [eax + 0x1c]
mov eax, ecx
jmp 0x1002fff9
push str.row_value_misused
push ecx
call fcn.10007f49
pop ecx
pop ecx
jmp 0x1002f5c3
mov bl, byte [ecx + 0x17]
xor eax, eax
mov ecx, dword [esp + 0x10]
push eax
push eax
push dword [edi + 0x1c]
push 0x15
pop edx
call fcn.1001d593
mov esi, eax
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, eax
push dword [ebp + 8]
mov byte [eax + 0x17], 0
mov edx, dword [edi + 0xc]
call fcn.1002f21c
mov edi, eax
mov edx, esi
mov eax, dword [esp + 0x1c]
pop ecx
mov byte [eax + 0x17], bl
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.1001dcf7
mov ecx, dword [ebx + 0x6c]
mov edx, esi
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.1001dcf7
mov dword [eax + 0xc], edi
jmp 0x1002f5c6
mov dword [esp + 0x14], esi
je case.0x1002f27e.107
cmp esi, 0x36
ja 0x1002fc75
mov edx, esi
mov dword [esp + 0x14], edx
je 0x1002fab5
cmp esi, 0x30
ja 0x1002fb6a
je 0x1002fb58
mov dword [esp + 0x14], esi
mov dword [esp + 0x14], edx
sub esi, 0x13
je case.0x1002f27e.110
sub esi, 1
je 0x1002fb2f
sub esi, 0x10
je 0x1002fadf
sub esi, 7
je case.0x1002f27e.107
sub esi, 1
je case.0x1002f27e.107
sub esi, 1
jne case.0x1002f27e.111
xor eax, eax
mov ebx, 0x80
cmp edx, 0x2d
sete al
lea edx, [eax + 0x34]
mov dword [esp + 0x14], edx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x40], ecx
call fcn.1002c54c
cmp eax, 1
jle 0x1002fd90
mov ecx, dword [esp + 0x18]
push ebx
push edx
push dword [ebp + 8]
mov edx, edi
call fcn.1002c662
jmp 0x1002f5c0
mov esi, dword [ebp + 8]
mov edx, dword [edi + 0xc]
push esi
call fcn.1002f21c
mov dword [esp + 0x20], eax
pop ecx
cmp eax, esi
je 0x1002fb0a
mov ecx, dword [esp + 0x10]
push ebx
push esi
push eax
push 0x4f
pop edx
call fcn.1001d593
add esp, 0xc
mov dword [esp + 0x1c], esi
mov ecx, dword [edi + 8]
xor edx, edx
call fcn.10035fff
mov ecx, dword [esp + 0x10]
push ebx
movsx eax, al
push eax
push esi
push 0x55
pop edx
call fcn.1001d593
mov eax, dword [esp + 0x28]
jmp 0x1002fff6
mov edx, edi
call fcn.1002e79e
jmp 0x1002fff9
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x20]
push eax
call fcn.10030157
mov edi, dword [ebp + 8]
pop ecx
push ebx
push edi
mov edx, dword [esp + 0x1c]
push eax
jmp 0x1002f54e
push ebx
push ebx
mov ebx, dword [ebp + 8]
mov edx, edi
push ebx
call fcn.100303e2
jmp 0x1002f2c2
mov eax, esi
mov dword [esp + 0x14], esi
mov edx, esi
mov dword [esp + 0x14], edx
sub eax, 0x31
je 0x1002fc05
sub eax, 1
je 0x1002fba0
sub eax, 1
je 0x1002fba0
sub eax, 1
je 0x1002fab5
sub eax, 1
je 0x1002fab5
jmp case.0x1002f27e.111
mov ecx, dword [esp + 0x10]
push ebx
push dword [ebp + 8]
push 1
push 0x46
pop edx
call fcn.1001d593
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add esp, 0xc
push eax
call fcn.10030157
pop ecx
mov ecx, dword [esp + 0x10]
mov edx, esi
push ebx
push ebx
push eax
call fcn.1001d593
mov edi, dword [ebp + 8]
add esp, 0xc
mov esi, eax
push ebx
push edi
push ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
push 0x46
pop edx
call fcn.1001d593
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.1001dcf7
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
jmp 0x1002f5c6
mov esi, dword [ecx + 0x38]
push ebx
push dword [ebp + 8]
dec esi
push ebx
push 0x49
pop edx
lea edi, [esi - 1]
mov dword [ecx + 0x38], edi
mov ecx, dword [esp + 0x1c]
call fcn.1001d593
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x18]
push edi
push esi
call fcn.1002ea1f
mov ecx, dword [esp + 0x18]
push ebx
push dword [ebp + 8]
push 1
push 0x46
pop edx
call fcn.1001d593
add esp, 0x14
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1001d880
push ebx
push ebx
mov ebx, dword [ebp + 8]
mov ecx, esi
push ebx
push 0x53
pop edx
call fcn.1001d593
add esp, 0xc
mov edx, edi
mov ecx, esi
call fcn.1001d880
jmp 0x1002f482
mov dword [esp + 0x14], esi
cmp esi, 0x64
ja 0x1002fdda
je case.0x1002f27e.107
mov dword [esp + 0x14], esi
mov edx, esi
mov dword [esp + 0x14], edx
sub esi, 0x37
je 0x1002fab5
sub esi, 1
je 0x1002fab5
sub esi, 1
je 0x1002fab5
sub esi, 0xe
je 0x1002fd22
sub esi, 6
je 0x1002fcbf
sub esi, 0x16
jmp 0x1002fe05
mov eax, dword [edi + 0x2c]
mov edx, 0x95
mov esi, dword [esp + 0x10]
mov dword [esp + 0x40], eax
push ebx
movsx ecx, word [eax + 0x2a]
movsx eax, word [edi + 0x20]
inc ecx
imul ecx, dword [edi + 0x1c]
push dword [ebp + 8]
inc ecx
add eax, ecx
mov ecx, esi
push eax
call fcn.1001d593
movzx eax, word [edi + 0x20]
add esp, 0xc
test ax, ax
js 0x1002f5c3
mov edi, dword [ebp + 8]
movsx ecx, ax
mov eax, dword [esp + 0x40]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xd], 0x45
jne 0x1002f5c6
push ebx
push ebx
push edi
push 0x54
pop edx
mov ecx, esi
jmp 0x1002f552
cmp dword [ecx + 0x78], ebx
jne 0x1002fd39
push str.RAISE___may_only_be_used_within_a_trigger_program
push ecx
call fcn.10007f49
pop ecx
pop ecx
jmp 0x1002f24a
cmp byte [edi + 1], 2
jne 0x1002fd4c
cmp dword [ecx + 0x74], ebx
mov eax, ecx
cmovne eax, dword [ecx + 0x74]
mov byte [eax + 0x15], 1
mov al, byte [edi + 1]
mov edi, dword [edi + 8]
push ebx
cmp al, 4
jne 0x1002fd7b
mov ecx, dword [esp + 0x14]
push 4
push ebx
push 0x45
pop edx
call fcn.1001d593
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, eax
push ebx
push edi
call fcn.1001dc39
jmp 0x1002f9d8
push ebx
movsx eax, al
mov edx, 0x713
push edi
push eax
call fcn.100396de
jmp 0x1002f975
lea eax, [esp + 0x20]
mov edx, ecx
mov ecx, dword [esp + 0x18]
push eax
call fcn.10030157
mov edx, dword [edi + 0x10]
mov esi, eax
pop ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
call fcn.10030157
mov edx, dword [esp + 0x44]
or ebx, 0x20
pop ecx
mov ecx, dword [esp + 0x18]
push ebx
push dword [ebp + 8]
push eax
push esi
push dword [esp + 0x24]
push dword [edi + 0x10]
call fcn.1002c4ec
add esp, 0x18
jmp 0x1002f5c3
mov dword [esp + 0x14], esi
sub esi, 0x65
je case.0x1002f27e.107
sub esi, 1
je case.0x1002f27e.107
sub esi, 1
je case.0x1002f27e.107
sub esi, 1
je case.0x1002f27e.107
sub esi, 1
je case.0x1002f27e.107
mov eax, dword [edi + 0x14]
mov esi, dword [ecx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], ebx
lea edx, [eax + 4]
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
mov edx, dword [eax]
mov eax, dword [ecx + 0x38]
dec eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], eax
mov dword [ecx + 0x38], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x40], eax
test eax, eax
je 0x1002feca
push ebx
push ebx
mov edx, eax
mov ecx, esi
call fcn.1002cf3c
mov esi, eax
mov eax, dword [esp + 0x30]
pop ecx
pop ecx
mov dword [esp + 0x38], esi
cmp byte [eax + 0x51], bl
je 0x1002fe75
test esi, esi
je 0x1002f5c3
mov edx, esi
mov ecx, eax
call fcn.1002cdc8
jmp 0x1002f5c3
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
mov edx, esi
mov ecx, edi
call fcn.1002f195
pop ecx
mov ecx, esi
mov edx, eax
call fcn.1002c29b
push 0x34
push ebx
mov cl, byte [eax]
and dword [eax + 4], 0xffffefff
mov byte [eax + 0x26], cl
mov byte [eax], 0xab
mov dword [eax + 0x1c], edx
lea eax, [esp + 0x50]
push eax
call fcn.10064330
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x54]
add esp, 0xc
mov byte [esp + 0x48], 0x35
mov dword [esp + 0x54], esi
mov dword [esp + 0x20], ebx
jmp 0x1002fece
mov edi, ecx
mov ecx, ebx
lea eax, [edx - 1]
test eax, eax
jle 0x1002ff61
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
test edx, edx
mov dword [esp + 0x34], ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0x58]
cmovne eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
cmove eax, ecx
dec dword [edi + 0x38]
mov esi, dword [edi + 0x38]
push 0x10
push esi
push eax
push edi
mov dword [esp + 0x44], eax
call fcn.10030808
mov edx, dword [esp + 0x2c]
mov ecx, edi
push dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.100301cf
mov edx, dword [esp + 0x28]
add esp, 0x14
mov ecx, dword [esp + 0x10]
call fcn.1001d5ec
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1001d880
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
add eax, 0x30
sub dword [esp + 0x2c], 1
mov dword [esp + 0x1c], eax
jne 0x1002fee5
mov edx, dword [esp + 0x3c]
jmp 0x1002ff65
mov esi, dword [esp + 0x10]
test dl, 1
je 0x1002ff85
mov eax, dword [esp + 0x44]
mov ecx, edi
push dword [ebp + 8]
imul edx, edx, 0x18
mov edx, dword [edx + eax - 0x14]
call fcn.100301cf
mov edi, dword [ebp + 8]
pop ecx
jmp 0x1002ff98
mov edi, dword [ebp + 8]
mov ecx, esi
push ebx
push edi
push ebx
push 0x49
pop edx
call fcn.1001d593
add esp, 0xc
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1002ffab
mov ecx, dword [esp + 0x28]
mov edx, eax
call fcn.1002cdc8
mov edx, dword [esp + 0x14]
mov ecx, esi
jmp 0x1002f724
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x20]
push eax
call fcn.10030157
mov edx, dword [edi + 0x10]
mov esi, eax
pop ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
call fcn.10030157
mov edi, dword [ebp + 8]
pop ecx
push edi
push esi
jmp 0x1002fb4e
mov esi, dword [ebp + 8]
push ebx
push esi
push ebx
push 0x49
mov ecx, dword [esp + 0x20]
pop edx
call fcn.1001d593
mov eax, esi
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret