Function at 0x1004c0dc
Capabilities:
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
xor edx, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edx
mov ecx, dword [edi + 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], edx
test ecx, ecx
jne 0x1004c117
xor eax, eax
jmp 0x1004ce73
test ebx, ebx
je case.0x1004c142.114
movzx esi, byte [ebx]
mov dword [esp + 0xc], esi
cmp esi, 0x67
jbe 0x1004c8a3
lea eax, [esi - 0x68]
cmp eax, 0x45
ja case.0x1004c142.108
movzx eax, byte [eax + 0x1004ced8]
jmp dword [eax*4 + 0x1004ce7c]
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0x3c], ebx
jmp 0x1004c117
movsx eax, word [ebx + 0x1e]
mov edx, dword [ebx + 0x24]
imul eax, eax, 0x18
add eax, dword [edx + 0x1c]
cmp byte [edx], 0
jne 0x1004c16c
mov eax, dword [eax + 0x10]
jmp 0x1004ce73
cmp byte [edx + 1], 0
je case.0x1004c142.162
mov ebx, dword [ebp + 8]
push ebx
push dword [eax + 0xc]
push dword [edx + 8]
push 0x5a
jmp 0x1004ce68
test byte [ebx + 4], 8
mov edx, dword [ebx + 0x18]
je 0x1004c212
mov esi, dword [ebp + 8]
mov ecx, edi
mov edx, dword [ebx + 0xc]
push esi
call fcn.1004c0dc
pop ecx
movsx ecx, word [ebx + 0x1c]
mov edi, eax
test ecx, ecx
js 0x1004c1b7
mov eax, dword [ebx + 0x28]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xd]
jmp 0x1004c1b9
mov al, 0x44
movsx eax, al
mov dword [esp + 0x24], eax
cmp eax, 0x41
je 0x1004c20b
mov ebx, dword [esp + 0x10]
cmp edi, esi
je 0x1004c1e0
push 0
push esi
push edi
push 0x4f
pop edx
mov ecx, ebx
call fcn.1003b08d
add esp, 0xc
mov edi, esi
push 0
push 1
push edi
push 0x5b
pop edx
mov ecx, ebx
call fcn.1003b08d
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0x24]
mov ecx, ebx
push 0xffffffffffffffff
lea eax, [eax*2 + 0x1009018c]
push eax
call fcn.1003b725
pop ecx
pop ecx
mov eax, edi
jmp 0x1004ce73
test edx, edx
jns 0x1004c229
mov edx, dword [edi + 0x34]
test edx, edx
jns 0x1004c228
movsx eax, word [ebx + 0x1c]
sub eax, edx
jmp 0x1004ce73
dec edx
mov al, byte [ebx + 0x22]
push dword [ebp + 8]
mov byte [esp + 0x1b], al
movsx eax, word [ebx + 0x1c]
push eax
push edx
mov edx, dword [ebx + 0x28]
call fcn.1004bfa1
mov al, byte [esp + 0x23]
add esp, 0xc
test al, al
je 0x1004c2af
mov ecx, dword [esp + 0x10]
movzx edx, al
call fcn.1003b54c
jmp 0x1004c2af
mov esi, dword [ebp + 8]
mov ecx, edi
push esi
push edx
mov edx, ebx
call fcn.1004beaa
pop ecx
pop ecx
mov eax, esi
jmp 0x1004ce73
mov ecx, ebx
call fcn.100492d6
mov ebx, dword [ebp + 8]
xor ecx, ecx
push edx
push ebx
mov eax, dword [eax + 8]
cmp byte [eax + 4], cl
sete cl
push ecx
mov ecx, dword [esp + 0x1c]
push 0x46
jmp 0x1004ce68
mov esi, dword [ebp + 8]
push esi
push edx
mov edx, dword [ebx + 8]
call fcn.1004be59
jmp 0x1004c268
push dword [ebx + 8]
mov edx, dword [ebp + 8]
call fcn.1003b11b
pop ecx
mov eax, dword [ebp + 8]
jmp 0x1004ce73
mov esi, dword [ebx + 8]
lea ecx, [esi + 2]
call fcn.100260d0
lea edx, [esi + 2]
mov esi, dword [esp + 0x10]
lea edi, [eax - 1]
mov ecx, dword [esi]
push edi
call fcn.10027001
mov ebx, dword [ebp + 8]
pop ecx
push 0xfffffffffffffff9
push eax
mov eax, edi
mov ecx, esi
cdq
push 0
sub eax, edx
push ebx
sar eax, 1
push eax
push 0x4b
pop edx
call fcn.1003b1c9
add esp, 0x14
jmp 0x1004ce71
movsx eax, word [ebx + 0x1c]
push edx
push dword [ebp + 8]
push eax
push 0x4c
pop edx
call fcn.1003b08d
mov eax, dword [ebx + 8]
add esp, 0xc
cmp byte [eax + 1], 0
je 0x1004c2af
movsx edx, word [ebx + 0x1c]
mov ecx, dword [edi + 0xd0]
call fcn.100274f3
and dword [ecx], 0
mov edx, eax
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
call fcn.1003b797
jmp 0x1004c2ae
mov eax, dword [ebx + 0x18]
jmp 0x1004ce73
mov eax, dword [ebx + 0xc]
mov cl, byte [eax]
mov byte [esp + 0x17], cl
cmp cl, 0x93
mov ecx, dword [esp + 0x10]
jne 0x1004c369
mov ebx, dword [ebp + 8]
mov edx, eax
push ebx
push 1
mov ecx, edi
call fcn.1004beaa
pop ecx
pop ecx
jmp 0x1004ce71
cmp byte [esp + 0x17], 0x91
jne 0x1004c380
mov ebx, dword [ebp + 8]
mov edx, dword [eax + 8]
push ebx
push 1
call fcn.1004be59
jmp 0x1004c362
lea eax, [esp + 0x1c]
mov dword [esp + 0x48], edx
push eax
lea edx, [esp + 0x44]
mov byte [esp + 0x44], 0x93
mov ecx, edi
mov dword [esp + 0x48], 0x4400
call fcn.1004cfb6
mov edx, dword [ebx + 0xc]
mov esi, eax
pop ecx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.1004cfb6
mov ebx, dword [ebp + 8]
pop ecx
push ebx
push esi
push eax
push 0x65
pop edx
mov ecx, dword [esp + 0x1c]
call fcn.1003b08d
add esp, 0xc
jmp 0x1004c437
mov edx, dword [ebx + 0xc]
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.1004cfb6
pop ecx
mov ecx, dword [ebx + 0x10]
mov esi, eax
call fcn.100492d6
xor ecx, ecx
cmp byte [ebx + 0x22], 0x2d
mov ebx, 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 ebx
push esi
push 0x58
pop edx
call fcn.1003b2f2
add esp, 0x10
jmp 0x1004c437
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x1004c46b
push dword [ebx + 8]
push str.misuse_of_aggregate:__s__
push edi
call fcn.100261f3
add esp, 0xc
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.1004e379
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1004ce71
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x1004ce71
movzx eax, al
mov dword [edi + eax*4 + 0x8c], ecx
inc byte [edi + 0x13]
jmp 0x1004ce71
movsx ecx, word [ebx + 0x1e]
mov eax, dword [eax + 0x28]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 8]
jmp 0x1004ce73
test dword [ebx + 4], 0x1000000
mov esi, dword [edi]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], edx
mov al, byte [esi + 0x4e]
mov byte [esp + 0x18], al
je 0x1004c4a6
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 0x34]
jmp 0x1004ce73
cmp byte [edi + 0x17], dl
je 0x1004c4ce
push edx
push 2
pop edx
mov ecx, ebx
call fcn.1004aaaa
pop ecx
test eax, eax
je 0x1004c4cc
push 0xffffffffffffffff
mov edx, ebx
mov ecx, edi
call fcn.1004cf1e
pop ecx
jmp 0x1004ce73
xor edx, edx
test dword [ebx + 4], 0x4000
je 0x1004c59b
mov dword [esp + 0xc], edx
mov eax, edx
mov ecx, dword [ebx + 8]
push edx
push dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov edx, ecx
push eax
mov ecx, esi
mov dword [esp + 0x38], eax
call fcn.1005677e
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x1004c7bf
xor esi, esi
cmp dword [eax + 0x14], esi
jne 0x1004c7bf
mov eax, dword [eax + 4]
test eax, 0x200
je 0x1004c5b1
dec dword [edi + 0x38]
mov ecx, edi
mov eax, dword [edi + 0x38]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
push ebx
mov edx, dword [eax + 4]
call fcn.1004d02f
mov eax, dword [esp + 0x30]
pop ecx
cmp eax, 1
jle 0x1004c589
mov ecx, dword [esp + 0xc]
add ecx, 0x1c
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x10]
push esi
push dword [esp + 0x2c]
push ebx
push 0x33
pop edx
call fcn.1003b08d
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, edi
mov edx, dword [edx]
push ebx
call fcn.1004d02f
add dword [esp + 0x1c], 0x18
sub dword [esp + 0x28], 1
pop ecx
jne 0x1004c559
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
call fcn.1003b38b
jmp 0x1004c437
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x1004c4df
mov eax, dword [ecx]
jmp 0x1004c4e1
test eax, 0x400
je 0x1004c5ce
mov eax, dword [esp + 0xc]
mov ecx, edi
push dword [ebp + 8]
mov edx, dword [eax + 4]
call fcn.1004c0dc
jmp 0x1004c4c6
mov ecx, dword [esp + 0x2c]
mov edx, esi
mov dword [esp + 0x1c], edx
test ecx, ecx
jle 0x1004c65a
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], eax
cmp edx, 0x20
jae 0x1004c61b
mov ecx, dword [eax]
xor edx, edx
push esi
inc edx
call fcn.1004aaaa
mov edx, dword [esp + 0x20]
pop ecx
mov ecx, dword [esp + 0x2c]
test eax, eax
je 0x1004c617
mov eax, dword [esp + 0x28]
bts eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
test byte [ebx + 4], 0x20
je 0x1004c640
cmp dword [esp + 0x30], esi
jne 0x1004c640
mov edx, dword [eax]
mov ecx, edi
call fcn.100492fc
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
inc edx
add eax, 0x18
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
cmp edx, ecx
jl 0x1004c5ef
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0xc]
jmp 0x1004c665
mov edx, dword [esp + 0xc]
lea eax, [edx + 4]
mov dword [esp + 0x34], eax
test edx, edx
je 0x1004c6e1
cmp dword [esp + 0x28], esi
je 0x1004c688
mov eax, dword [edi + 0x2c]
lea ebx, [eax + 1]
add eax, ecx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov dword [edi + 0x2c], eax
jmp 0x1004c69b
mov edx, ecx
mov ecx, edi
call fcn.1004e392
mov edx, dword [esp + 0xc]
mov ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x20]
test byte [eax + 4], 0xc0
je 0x1004c6cd
mov ebx, dword [edx + 4]
mov bl, byte [ebx]
mov byte [esp + 0x17], bl
cmp bl, 0xa2
mov ebx, dword [esp + 0x3c]
je 0x1004c6be
cmp byte [esp + 0x17], 0xa4
jne 0x1004c6cd
mov ebx, dword [edx + 4]
mov al, byte [eax + 4]
and al, 0xc0
mov byte [ebx + 0x22], al
mov ebx, dword [esp + 0x3c]
push 3
push esi
push ecx
mov ecx, edi
call fcn.1004d0ec
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x1004c6e5
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x2c]
cmp eax, 2
jl 0x1004c70f
test byte [ebx + 4], 0x80
je 0x1004c713
push dword [edx + 0x1c]
mov ebx, dword [esp + 0x28]
mov ecx, ebx
mov edx, dword [esp + 0x24]
push eax
call fcn.1006c1fd
pop ecx
pop ecx
mov dword [esp + 0x20], eax
jmp 0x1004c723
test eax, eax
jle 0x1004c71b
mov ecx, dword [esp + 0x34]
push dword [ecx]
jmp 0x1004c6f7
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
test byte [eax + 4], 0x20
je 0x1004c761
cmp dword [esp + 0x30], esi
jne 0x1004c736
mov eax, dword [ebx + 8]
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x10]
mov ecx, ebx
push esi
push esi
push esi
push 0x52
pop edx
call fcn.1003b08d
add esp, 0xc
mov edx, eax
mov ecx, ebx
push 0xfffffffffffffffe
push dword [esp + 0x34]
call fcn.1003b725
mov eax, dword [esp + 0x28]
pop ecx
pop ecx
jmp 0x1004c765
mov ebx, dword [esp + 0x10]
mov edx, dword [edi + 0x34]
mov ecx, ebx
mov esi, dword [esp + 0x18]
neg edx
push 0xfffffffffffffff8
push eax
push dword [ebp + 8]
sbb edx, edx
push esi
push dword [esp + 0x38]
add edx, 0x3f
call fcn.1003b1c9
mov eax, dword [esp + 0x40]
add esp, 0x14
movzx edx, al
mov ecx, ebx
call fcn.1003b54c
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1004c2af
cmp dword [esp + 0x28], 0
jne 0x1004c2af
push eax
mov edx, esi
mov ecx, edi
call fcn.1004e3c8
add esp, 4
jmp 0x1004c2af
push dword [esp + 0x38]
push str.unknown_function:__s__
jmp 0x1004c42b
cmp esi, 0x83
jne 0x1004c975
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
je 0x1004c975
push 1
push dword [eax]
push str.sub_select_returns__d_columns___expected__d
push edi
call fcn.100261f3
add esp, 0x10
jmp 0x1004c434
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 0x18], edx
jne 0x1004c81a
mov edx, ecx
mov ecx, edi
call fcn.1004b709
mov ecx, eax
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x1004c83a
call fcn.1004959b
cmp edx, eax
je 0x1004c83a
push eax
push edx
push str._d_columns_assigned__d_values
push edi
call fcn.100261f3
add esp, 0x10
mov eax, dword [ebx + 0xc]
movsx ecx, word [ebx + 0x1c]
add ecx, dword [eax + 0x18]
mov eax, ecx
jmp 0x1004ce73
push str.row_value_misused
push edi
call fcn.100261f3
pop ecx
pop ecx
jmp 0x1004c434
push edx
push edx
push dword [ebx + 0x18]
push 0x15
pop edx
call fcn.1003b08d
mov edx, dword [ebx + 0xc]
add esp, 0xc
mov ecx, edi
mov esi, eax
push dword [ebp + 8]
call fcn.1004c0dc
pop ecx
mov ecx, dword [esp + 0x10]
mov edx, esi
mov ebx, eax
call fcn.1003b7e1
mov ecx, dword [ecx + 0x6c]
mov edx, esi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x10]
call fcn.1003b7e1
mov dword [eax + 0xc], ebx
jmp 0x1004c437
je case.0x1004c142.104
mov dword [esp + 0xc], esi
cmp esi, 0x36
ja 0x1004cae8
je 0x1004c9f0
cmp esi, 0x30
ja 0x1004c9c5
je 0x1004c9ae
mov dword [esp + 0xc], esi
mov dword [esp + 0xc], esi
sub esi, 0x13
je 0x1004c983
sub esi, 1
je 0x1004c975
sub esi, 0x10
je 0x1004c926
sub esi, 7
je case.0x1004c142.104
sub esi, 1
je case.0x1004c142.104
sub esi, 1
jne case.0x1004c142.108
mov esi, dword [esp + 0xc]
xor eax, eax
mov edx, 0x80
cmp esi, 0x2d
mov dword [esp + 0x18], edx
sete al
lea esi, [eax + 0x34]
mov dword [esp + 0xc], esi
jmp 0x1004c9f4
mov esi, dword [ebp + 8]
mov ecx, edi
mov edx, dword [ebx + 0xc]
push esi
call fcn.1004c0dc
mov edi, eax
pop ecx
cmp edi, esi
je 0x1004c950
mov ecx, dword [esp + 0x10]
push 0
push esi
push edi
push 0x4f
pop edx
call fcn.1003b08d
add esp, 0xc
mov edi, esi
mov ecx, dword [ebx + 8]
xor edx, edx
call fcn.10052865
mov ecx, dword [esp + 0x10]
push 0
movsx eax, al
push eax
push esi
push 0x55
pop edx
call fcn.1003b08d
add esp, 0xc
jmp 0x1004c20b
mov edx, ebx
mov ecx, edi
call fcn.1004b709
jmp 0x1004ce73
mov esi, dword [esp + 0xc]
mov edx, dword [ebx + 0xc]
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.1004cfb6
mov ebx, dword [ebp + 8]
mov edx, esi
pop ecx
mov ecx, dword [esp + 0x10]
push ebx
push eax
call fcn.1003b0f7
pop ecx
pop ecx
jmp 0x1004c437
mov esi, dword [ebp + 8]
mov ecx, edi
push edx
push edx
push esi
mov edx, ebx
call fcn.1004d211
add esp, 0xc
jmp 0x1004c26a
mov eax, esi
mov dword [esp + 0xc], esi
mov dword [esp + 0xc], esi
sub eax, 0x31
je 0x1004ca79
sub eax, 1
je 0x1004ca1c
sub eax, 1
je 0x1004ca1c
sub eax, 1
je 0x1004c9f0
sub eax, 1
jne case.0x1004c142.108
mov esi, dword [esp + 0xc]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x38], ecx
call fcn.1004959b
cmp eax, 1
jle 0x1004cbfc
push edx
push esi
push dword [ebp + 8]
mov edx, ebx
mov ecx, edi
call fcn.100496b1
jmp 0x1004c431
push edx
push dword [ebp + 8]
push 1
push 0x46
pop edx
call fcn.1003b08d
mov edx, dword [ebx + 0xc]
lea eax, [esp + 0x28]
add esp, 0xc
mov ecx, edi
push eax
call fcn.1004cfb6
pop ecx
mov ecx, dword [esp + 0x10]
mov edx, esi
push eax
call fcn.1003b0e6
mov ebx, dword [ebp + 8]
mov esi, eax
pop ecx
mov ecx, dword [esp + 0x10]
xor eax, eax
push eax
push ebx
push eax
push 0x46
pop edx
call fcn.1003b08d
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, esi
call fcn.1003b7e1
mov ecx, dword [ecx + 0x6c]
mov dword [eax + 8], ecx
jmp 0x1004c437
mov esi, dword [edi + 0x38]
mov eax, dword [esp + 0x24]
dec esi
push edx
push dword [ebp + 8]
push edx
push 0x49
lea edi, [esi - 1]
pop edx
mov dword [eax + 0x38], edi
call fcn.1003b08d
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, ebx
push edi
push esi
call fcn.1004b93f
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
push 0
push ebx
push 1
push 0x46
pop edx
call fcn.1003b08d
add esp, 0x14
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1003b38b
xor eax, eax
mov ecx, esi
push eax
push eax
push ebx
push 0x53
pop edx
call fcn.1003b08d
add esp, 0xc
mov edx, edi
mov ecx, esi
call fcn.1003b38b
jmp 0x1004ce71
cmp esi, 0x61
ja 0x1004cc44
je case.0x1004c142.104
mov dword [esp + 0xc], esi
mov dword [esp + 0xc], esi
sub esi, 0x37
je 0x1004c9f0
sub esi, 1
je 0x1004c9f0
sub esi, 1
je 0x1004c9f0
sub esi, 0xe
je 0x1004cb91
sub esi, 6
je 0x1004cb2c
sub esi, 0x13
jmp 0x1004cc6f
mov eax, dword [ebx + 0x28]
mov esi, dword [esp + 0x10]
push edx
push dword [ebp + 8]
movsx ecx, word [eax + 0x2a]
mov edx, 0x95
inc ecx
mov dword [esp + 0x40], eax
imul ecx, dword [ebx + 0x18]
movsx eax, word [ebx + 0x1c]
inc ecx
add eax, ecx
mov ecx, esi
push eax
call fcn.1003b08d
movzx eax, word [ebx + 0x1c]
add esp, 0xc
test ax, ax
js 0x1004c434
mov ebx, dword [ebp + 8]
movsx ecx, ax
mov eax, dword [esp + 0x38]
add ecx, ecx
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0xd], 0x45
jne 0x1004c437
xor eax, eax
mov ecx, esi
push eax
push eax
push ebx
push 0x54
pop edx
jmp 0x1004c3c1
cmp dword [edi + 0x70], edx
jne 0x1004cba8
push str.RAISE___may_only_be_used_within_a_trigger_program
push edi
call fcn.100261f3
pop ecx
pop ecx
jmp 0x1004c110
cmp byte [ebx + 1], 2
jne 0x1004cbb9
mov ecx, edi
call fcn.10055e84
mov ecx, dword [esp + 0x10]
mov al, byte [ebx + 1]
mov esi, dword [ebx + 8]
push edx
cmp al, 4
jne 0x1004cbe5
push 4
push edx
push 0x45
pop edx
call fcn.1003b08d
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, eax
push 0
push esi
call fcn.1003b725
jmp 0x1004c856
push edx
movsx eax, al
mov edx, 0x713
push esi
push eax
mov ecx, edi
call fcn.10055e92
jmp 0x1004c7f6
lea eax, [esp + 0x1c]
mov edx, ecx
push eax
mov ecx, edi
call fcn.1004cfb6
mov edx, dword [ebx + 0x10]
mov esi, eax
pop ecx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.1004cfb6
mov edx, dword [esp + 0x3c]
pop ecx
mov ecx, dword [esp + 0x18]
or ecx, 0x20
push ecx
push dword [ebp + 8]
mov ecx, edi
push eax
push esi
push dword [esp + 0x1c]
push dword [ebx + 0x10]
call fcn.1004953b
add esp, 0x18
jmp 0x1004c434
mov dword [esp + 0xc], esi
sub esi, 0x62
je case.0x1004c142.104
sub esi, 1
je case.0x1004c142.104
sub esi, 1
je case.0x1004c142.104
sub esi, 1
je case.0x1004c142.104
sub esi, 1
je case.0x1004c142.104
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], edx
lea ecx, [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x38]
dec eax
mov dword [esp + 0x20], ecx
mov dword [edi + 0x38], eax
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x28], eax
test esi, esi
je 0x1004cd26
push 0x30
push edx
lea eax, [esp + 0x48]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, esi
call fcn.10049e11
push eax
lea eax, [esp + 0x44]
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x1c]
lea edx, [esp + 0x40]
mov ecx, edi
push eax
call fcn.1004c057
pop ecx
lea ecx, [esp + 0x40]
mov edx, eax
call fcn.100492d6
push 0x30
xor ebx, ebx
push ebx
mov cl, byte [eax]
and dword [eax + 4], 0xffffefff
mov byte [eax + 0x22], cl
mov byte [eax], 0xa8
mov dword [eax + 0x18], edx
lea eax, [esp + 0x78]
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x4c]
lea edx, [esp + 0x7c]
mov byte [esp + 0x7c], 0x35
add esp, 0xc
mov dword [esp + 0x7c], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x30]
mov ebx, dword [ebp + 8]
dec eax
test eax, eax
jle 0x1004cdf3
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x18], eax
test esi, esi
je 0x1004cda0
mov esi, dword [edi + 0x38]
mov eax, dword [ecx]
dec esi
push 0x10
push esi
push edx
push edi
mov dword [esp + 0x90], eax
mov dword [edi + 0x38], esi
call fcn.1004d68c
mov edx, dword [esp + 0x30]
mov ecx, edi
push ebx
mov edx, dword [edx + 0x18]
call fcn.1004d02f
mov edx, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [esp + 0x10]
call fcn.1003b10a
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1003b38b
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add ecx, 0x30
sub dword [esp + 0x18], 1
mov dword [esp + 0x20], ecx
jne 0x1004cd42
jmp 0x1004cdf7
mov esi, dword [edi + 0x38]
mov eax, dword [ecx]
dec esi
push 0x10
push esi
push eax
push edi
mov dword [edi + 0x38], esi
call fcn.1004d68c
mov edx, dword [esp + 0x30]
mov ecx, edi
push ebx
mov edx, dword [edx + 0x18]
call fcn.1004d02f
mov edx, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [esp + 0x10]
call fcn.1003b10a
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1003b38b
mov ecx, dword [esp + 0x20]
add ecx, 0x30
sub dword [esp + 0x18], 1
mov dword [esp + 0x20], ecx
jne 0x1004cda0
jmp 0x1004cdf7
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
test cl, 1
je 0x1004ce16
mov eax, dword [esp + 0x38]
imul edx, ecx, 0x18
mov ecx, edi
push ebx
mov edx, dword [edx + eax - 0x14]
call fcn.1004d02f
pop ecx
jmp 0x1004ce28
xor eax, eax
mov ecx, esi
push eax
push ebx
push eax
push 0x49
pop edx
call fcn.1003b08d
add esp, 0xc
mov ecx, esi
jmp 0x1004c58d
mov edx, dword [ebx + 0xc]
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
call fcn.1004cfb6
mov edx, dword [ebx + 0x10]
mov esi, eax
pop ecx
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.1004cfb6
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x10]
pop ecx
push ebx
push esi
push eax
jmp 0x1004c3bd
mov ebx, dword [ebp + 8]
push edx
push ebx
push edx
push 0x49
pop edx
call fcn.1003b08d
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret