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

Disassembly:
jmp 0x7cdc00
sub esp, 0xdc
mov eax, dword [0xa0b130]
xor eax, esp
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xe8]
push ebx
push esi
mov esi, dword [esp + 0xe8]
push edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 0x38], esi
mov ebx, edi
mov dword [esp + 0x2c], edi
push 0
mov edi, eax
push dword [ebx]
push esi
call fcn.00402338
add esp, 0xc
test eax, eax
je 0x7cdc55
cmp ebx, eax
je 0x7ce8c1
cmp edi, eax
je case.0x7ceb0e.19
mov ecx, dword [ebx]
mov al, byte [ecx + 4]
mov byte [esp + 0x37], al
cmp al, 0x12
je 0x7cdc66
cmp al, 0x11
je case.default.0x7cdc7b
mov al, byte [ebx + 8]
cmp al, 9
je 0x7cdc73
cmp byte [edi + 8], 9
jne case.default.0x7cdc7b
lea edx, [esi - 0xd]
cmp edx, 0x11
ja case.default.0x7cdc7b
jmp dword [edx*4 + 0x7ced7c]
cmp byte [edi + 8], 0xd
jne 0x7ce069
lea eax, [esi - 0xd]
cmp eax, 0x11
ja case.0x7cdc9f.14
movzx eax, byte [eax + 0x7cede8]
jmp dword [eax*4 + 0x7cedc4]
mov ecx, edi
call fcn.0040eec1
test al, al
je case.0x7cdc9f.14
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
mov ecx, edi
call fcn.0040eec1
test al, al
jne 0x7ce8c1
mov ecx, edi
call fcn.0040b235
test al, al
jne case.0x7ceb0e.19
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx + 8]
jmp 0x7ce08d
mov ecx, edi
call fcn.0040b235
test al, al
jne case.0x7ceb0e.19
mov ecx, edi
call fcn.0040eec1
test al, al
je case.0x7cdc9f.14
push dword [edi]
call fcn.0040105a
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
mov ecx, edi
call fcn.0040b235
test al, al
jne 0x7ce37b
mov ecx, edi
call fcn.0040eec1
test al, al
jne 0x7cdd0f
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx + 8]
jmp 0x7ce08d
mov ecx, edi
call fcn.0040eec1
test al, al
jne 0x7ce8c1
mov ecx, edi
call fcn.0040a5fb
test al, al
jne case.0x7ceb0e.19
cmp byte [ebx + 8], 5
jne case.0x7cdc9f.14
cmp word [ebx + 0xa], 0x27
jne 0x7cde2f
mov eax, dword [edi]
mov ecx, dword [ebx + 0xc]
shl ecx, 4
mov esi, dword [eax + 4]
mov eax, ebx
sub eax, ecx
shr esi, 8
mov ecx, dword [eax]
lea eax, [esp + 0x88]
push eax
mov ecx, dword [ecx]
call fcn.00412efe
mov ecx, eax
call fcn.004082bf
push eax
lea eax, [esp + 0x20]
push esi
push eax
call fcn.0040dee5
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
lea eax, [edi + 0x10]
push eax
sub esp, 0x10
lea eax, [esp + 0x34]
mov ecx, esp
push eax
call fcn.0040ac18
lea eax, [esp + 0x90]
push eax
call fcn.0040acf4
add esp, 0x18
mov ecx, eax
call fcn.00407978
cmp dword [esp + 0x80], 0x40
mov byte [esp + 0x17], al
jbe 0x7cde10
push dword [esp + 0x78]
call fcn.0040dae4
mov al, byte [esp + 0x1b]
add esp, 4
test al, al
jne 0x7ce382
cmp dword [esp + 0x24], 0x40
jbe 0x7cde2b
push dword [esp + 0x1c]
call fcn.0040dae4
add esp, 4
mov esi, dword [esp + 0x38]
cmp word [ebx + 0xa], 0x2f
jne case.0x7cdc9f.14
mov ecx, dword [ebx + 0xc]
mov eax, ebx
shl ecx, 4
sub eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
call fcn.00412ada
add esp, 4
test al, al
je case.0x7cdc9f.14
mov eax, dword [esp + 0x18]
xor cl, cl
mov byte [esp + 0x30], cl
mov byte [esp + 0x31], cl
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x7cdec5
mov ecx, edx
call fcn.00408fc6
mov ecx, dword [esp + 0x18]
push eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x13]
push eax
call fcn.00402a68
mov byte [esp + 0x31], 1
mov cl, byte [eax]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x30], cl
cmp byte [eax + 8], 0
jne 0x7cdefa
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x11], 0
jne 0x7cdefa
push 2
push 0
push 4
call fcn.0040ebba
mov cl, 0x3f
add esp, 0xc
sub cl, al
mov byte [esp + 0x30], cl
jmp 0x7cdefa
mov dl, byte [eax + 8]
test dl, dl
je 0x7cdefa
cmp dl, 3
jne 0x7cdefa
movzx eax, word [eax + 0x16]
and eax, 0x1f
jne 0x7cdee1
mov word [esp + 0x4c], ax
jmp 0x7cdeec
dec al
mov byte [esp + 0x4d], 1
mov byte [esp + 0x4c], al
mov ax, word [esp + 0x4c]
mov word [esp + 0x30], ax
mov cl, byte [esp + 0x30]
mov eax, dword [esp + 0x30]
shr eax, 8
test al, al
je case.0x7cdc9f.14
movzx eax, cl
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x18], eax
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
test ecx, ecx
jne 0x7cdf32
cmp edx, 1
jbe case.0x7cdc9f.14
mov eax, dword [edi]
mov ecx, dword [eax + 4]
shr ecx, 8
cmp dword [esp + 0x18], ecx
mov eax, ecx
cmovb eax, dword [esp + 0x18]
push eax
push ecx
lea eax, [esp + 0x44]
push eax
call fcn.0040dee5
add esp, 0xc
lea eax, [edi + 0x10]
lea ecx, [esp + 0x3c]
push eax
push ecx
sub esp, 0x10
mov ecx, esp
push eax
call fcn.0040ac18
lea eax, [esp + 0x80]
push eax
call fcn.0040acf4
add esp, 0x18
mov ecx, eax
call fcn.00407978
cmp dword [esp + 0x70], 0x40
mov byte [esp + 0x17], al
jbe 0x7cdf9a
push dword [esp + 0x68]
call fcn.0040dae4
mov al, byte [esp + 0x1b]
add esp, 4
test al, al
jne 0x7ce39e
cmp dword [esp + 0x44], 0x40
jbe case.0x7cdc9f.14
push dword [esp + 0x3c]
call fcn.0040dae4
mov ecx, dword [esp + 0x30]
add esp, 4
mov al, byte [ecx + 8]
jmp 0x7ce08d
mov ecx, edi
call fcn.0040eec1
test al, al
jne case.0x7ceb0e.19
mov ecx, edi
call fcn.0040a5fb
test al, al
jne 0x7ce8c1
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx + 8]
jmp 0x7ce08d
mov ecx, edi
call fcn.0040eec1
test al, al
jne case.0x7ceb0e.19
cmp byte [ebx + 8], 5
jne case.0x7cdc9f.14
movzx eax, word [ebx + 0xa]
sub eax, 0x35
je 0x7ce012
sub eax, 1
jne case.0x7cdc9f.14
mov ecx, ebx
call fcn.0040771b
push eax
call fcn.00401a00
mov ecx, dword [ebx + 0xc]
shl ecx, 4
sub ebx, ecx
push 0
push dword [ebx + 0x10]
push dword [ebx]
push eax
call fcn.0040b023
add esp, 0x14
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
cmp byte [ebx + 8], 5
jne case.0x7cdc9f.14
cmp word [ebx + 0xa], 0x27
je 0x7ce3d7
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx + 8]
jmp 0x7ce08d
mov al, byte [ebx + 8]
cmp al, 0xd
jne 0x7ce089
push esi
mov byte [esp + 0x1b], al
call fcn.0040d4e5
add esp, 4
test al, al
jne 0x7ce3fb
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x2c]
xor edx, edx
cmp al, 0xd
cmovne ecx, edx
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x7ce0ee
cmp byte [edi + 8], 0xd
jne case.0x7ce0b7.14
lea eax, [ecx + 0x10]
lea ecx, [esi - 0xd]
mov dword [esp + 0x18], eax
lea edx, [edi + 0x10]
cmp ecx, 0x11
ja case.0x7ce0b7.14
lea ecx, [esi - 0xd]
jmp dword [ecx*4 + 0x7cedfc]
mov ecx, dword [esp + 0x10]
add esi, 0xffffffed
cmp esi, 8
ja case.0x7ce0d5.21
movzx eax, byte [esi + 0x7cee4c]
jmp dword [eax*4 + 0x7cee44]
call fcn.0040eec1
test al, al
jne case.0x7ceb0e.19
jmp case.0x7ce0d5.21
xor ecx, ecx
cmp al, 0xe
mov eax, dword [esp + 0x2c]
cmovne eax, ecx
test eax, eax
je 0x7ce15a
cmp byte [edi + 8], 0xe
cmove ecx, edi
test ecx, ecx
je case.0x7ce0d5.21
add ecx, 0x10
add eax, 0x10
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x50]
push eax
call fcn.00414ad8
add esi, 0xfffffff2
cmp esi, 0xa
ja case.0x7ce12b.15
movzx eax, byte [esi + 0x7cee70]
jmp dword [eax*4 + 0x7cee58]
mov esi, dword [esp + 0x50]
call fcn.00402b5d
cmp esi, eax
je 0x7ce14a
lea ecx, [esp + 0x50]
call fcn.00415f41
jmp case.0x7ce0d5.21
call fcn.00402b5d
lea ecx, [esp + 0x50]
call fcn.00407dce
jmp case.0x7ce0d5.21
cmp byte [esp + 0x37], 0x12
je case.0x7ceb0e.14
mov eax, dword [ebx]
xor ecx, ecx
cmp byte [eax + 4], 0x11
cmove ecx, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x7ceb6b
cmp byte [ebx + 8], 5
mov esi, dword [esp + 0x38]
je 0x7cea70
cmp byte [edi + 8], 5
jne 0x7ceaea
push esi
call fcn.0040d4e5
add esp, 4
test al, al
je 0x7ceaea
mov eax, ebx
jmp 0x7cdc30
cmp al, 9
jne case.0x7cdc7b.13
cmp byte [edi + 8], al
je 0x7ce1e3
push ecx
call fcn.0040105a
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
cmp al, 9
jne 0x7ce1e3
cmp byte [edi + 8], al
je case.0x7ceb0e.19
push ecx
call fcn.00409aa7
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
cmp al, 9
jne 0x7ce211
cmp byte [edi + 8], al
je case.0x7ceb0e.19
lea eax, [esp + 0x2c]
mov byte [esp + 0x20], 0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.004052ae
add esp, 8
test al, al
jne 0x7ce24f
lea eax, [esp + 0x2c]
mov byte [esp + 0x20], 0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.004052ae
add esp, 8
test al, al
je 0x7ce2b6
mov ecx, dword [esp + 0x2c]
push 0
call fcn.0041200d
test al, al
je 0x7ce2b6
push dword [ebx]
call fcn.0040105a
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
cmp byte [edi + 8], 9
je 0x7ce8c1
lea eax, [esp + 0xf]
push eax
push edi
call fcn.00410e15
add esp, 8
test al, al
jne case.0x7ceb0e.19
lea eax, [esp + 0xf]
push eax
push edi
call fcn.00410541
add esp, 8
test al, al
jne case.0x7ceb0e.19
push dword [ebx]
call fcn.00409aa7
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
lea eax, [esp + 0xf]
push eax
push edi
call fcn.00406537
add esp, 8
test al, al
jne 0x7ce8c1
lea eax, [esp + 0xf]
push eax
push edi
call fcn.00410e15
jmp 0x7ce2ab
cmp al, 9
jne 0x7ce308
cmp byte [edi + 8], al
je case.0x7ceb0e.19
push ecx
call fcn.00406500
jmp 0x7ce2bd
cmp byte [edi + 8], 9
je 0x7ce8c1
lea eax, [esp + 0xf]
push eax
push edi
call fcn.00410e15
jmp 0x7ce2ab
lea eax, [esp + 0xf]
push eax
push ebx
call fcn.00411379
add esp, 8
test al, al
je case.0x7cdc7b.14
cmp byte [edi + 8], 9
je 0x7ce8c1
cmp byte [ebx + 8], 9
jne 0x7ce353
cmp byte [edi + 8], 9
je case.0x7ceb0e.19
push 0
push 0
push 0
push dword [ebx]
call fcn.0041042e
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
push dword [edi]
jmp 0x7ce2b8
cmp dword [esp + 0x24], 0x40
jbe case.0x7ceb0e.19
push dword [esp + 0x1c]
call fcn.0040dae4
add esp, 4
jmp case.0x7ceb0e.19
push dword [edi]
call fcn.00409aa7
add esp, 4
cmp dword [esp + 0x44], 0x40
mov esi, eax
jbe 0x7ce3bd
push dword [esp + 0x3c]
call fcn.0040dae4
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
push 0
push edi
push ebx
call fcn.0040a83a
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
push 0
push 0
push ebx
push edi
push esi
call fcn.0040a38f
add esp, 0x14
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
push eax
lea ecx, [esp + 0x40]
call fcn.0040ac18
lea eax, [edi + 0x10]
push eax
lea ecx, [esp + 0x40]
call fcn.004015af
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x48], 0
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x24], 0x40
jbe 0x7ce3bd
push dword [esp + 0x1c]
call fcn.0040dae4
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
push eax
lea ecx, [esp + 0x40]
call fcn.0040ac18
lea eax, [edi + 0x10]
push eax
lea ecx, [esp + 0x40]
call fcn.00405489
jmp 0x7ce439
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00413f2a
mov ecx, dword [esp + 0x10]
push eax
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x70], 0x40
jbe 0x7ce3bd
push dword [esp + 0x68]
jmp 0x7ce481
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00404750
mov ecx, dword [esp + 0x10]
push eax
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x70], 0x40
jbe 0x7ce3bd
push dword [esp + 0x68]
jmp 0x7ce481
mov ecx, edx
call fcn.0040285b
mov esi, dword [esp + 0x18]
test al, al
je 0x7ce552
mov ecx, esi
call fcn.00403ee5
test al, al
je 0x7ce552
mov ecx, dword [esp + 0x10]
push dword [ecx]
call fcn.0040105a
jmp 0x7ce2bd
lea eax, [edi + 0x10]
mov ecx, esi
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00411bc6
mov ecx, dword [esp + 0x10]
push eax
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x70], 0x40
jbe 0x7ce3bd
push dword [esp + 0x68]
jmp 0x7ce481
push edx
lea ecx, [esp + 0x6c]
push ecx
mov ecx, eax
call fcn.00406ae1
mov ecx, dword [esp + 0x10]
push eax
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x70], 0x40
jbe 0x7ce3bd
push dword [esp + 0x68]
jmp 0x7ce481
mov ecx, edx
call fcn.0040285b
mov esi, dword [esp + 0x18]
test al, al
je 0x7ce5df
mov ecx, esi
call fcn.00403ee5
test al, al
jne 0x7ce542
lea eax, [edi + 0x10]
mov ecx, esi
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.004018ac
mov ecx, dword [esp + 0x10]
push eax
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x70], 0x40
jbe 0x7ce3bd
push dword [esp + 0x68]
jmp 0x7ce481
push edx
sub esp, 0x10
mov ecx, esp
push eax
call fcn.0040ac18
lea eax, [esp + 0x7c]
push eax
call fcn.0040acf4
mov ecx, dword [esp + 0x28]
add esp, 0x18
push eax
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x70], 0x40
jbe 0x7ce3bd
push dword [esp + 0x68]
jmp 0x7ce481
push eax
lea ecx, [esp + 0x20]
call fcn.0040ac18
mov esi, dword [esp + 0x24]
cmp esi, 0x40
ja 0x7ce685
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
or ecx, dword [edi + 0x10]
or edx, dword [edi + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x7ce69e
lea eax, [edi + 0x10]
push eax
lea ecx, [esp + 0x20]
call fcn.00414808
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x28], 0
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
jmp 0x7ce3a8
push eax
lea ecx, [esp + 0x20]
call fcn.0040ac18
mov esi, dword [esp + 0x24]
cmp esi, 0x40
ja 0x7ce6f9
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
xor ecx, dword [edi + 0x10]
xor edx, dword [edi + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x7ce69e
lea eax, [edi + 0x10]
push eax
lea ecx, [esp + 0x20]
call fcn.0040a1f5
jmp 0x7ce692
push 0
push dword [eax + 8]
mov ecx, edx
call fcn.0040fc1d
test al, al
je 0x7ce25e
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov dword [esp + 0x24], eax
cmp eax, 0x40
ja 0x7ce73b
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jmp 0x7ce745
push esi
lea ecx, [esp + 0x20]
call fcn.00406ffa
lea eax, [edi + 0x10]
push eax
lea ecx, [esp + 0x20]
call fcn.0041154a
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
call fcn.0040326a
push eax
call fcn.004111c6
add esp, 8
mov esi, eax
cmp dword [esp + 0x24], 0x40
jbe 0x7ce3bd
push dword [esp + 0x1c]
jmp 0x7ce3b5
push 0
push dword [eax + 8]
mov ecx, edx
call fcn.0040fc1d
test al, al
je 0x7ce25e
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov dword [esp + 0x24], eax
cmp eax, 0x40
ja 0x7ce7bf
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x1c], eax
lea eax, [edi + 0x10]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push eax
call fcn.00412ca6
jmp 0x7ce752
push esi
lea ecx, [esp + 0x20]
call fcn.00406ffa
lea eax, [edi + 0x10]
push eax
lea ecx, [esp + 0x20]
call fcn.00412ca6
jmp 0x7ce752
push 0
push dword [eax + 8]
mov ecx, edx
call fcn.0040fc1d
test al, al
je 0x7ce25e
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov dword [esp + 0x24], eax
cmp eax, 0x40
ja 0x7ce81e
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x1c], eax
lea eax, [edi + 0x10]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
push eax
call fcn.0040e14c
jmp 0x7ce752
push esi
lea ecx, [esp + 0x20]
call fcn.00406ffa
lea eax, [edi + 0x10]
push eax
lea ecx, [esp + 0x20]
call fcn.0040e14c
jmp 0x7ce752
mov esi, dword [esp + 0x50]
call fcn.00402b5d
cmp esi, eax
je 0x7ce858
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.00413b42
jmp 0x7ce86c
call fcn.00402b5d
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.00413d40
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call fcn.0040326a
push eax
call fcn.0040939f
mov esi, dword [esp + 0x58]
add esp, 8
mov edi, eax
call fcn.00402b5d
cmp esi, eax
je 0x7ce8b3
lea ecx, [esp + 0x50]
call fcn.00415f41
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
call fcn.00402b5d
lea ecx, [esp + 0x50]
call fcn.00407dce
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
mov esi, dword [esp + 0x50]
call fcn.00402b5d
cmp esi, eax
je 0x7ce8f9
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.00406c8f
jmp 0x7ce90d
call fcn.00402b5d
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.0040f5e2
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call fcn.0040326a
push eax
call fcn.0040939f
mov esi, dword [esp + 0x58]
add esp, 8
mov edi, eax
call fcn.00402b5d
cmp esi, eax
je 0x7ce8b3
lea ecx, [esp + 0x50]
call fcn.00415f41
jmp 0x7ce8c1
mov esi, dword [esp + 0x50]
call fcn.00402b5d
cmp esi, eax
je 0x7ce95a
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.004045e8
jmp 0x7ce96e
call fcn.00402b5d
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.0040a1f0
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call fcn.0040326a
push eax
call fcn.0040939f
mov esi, dword [esp + 0x58]
add esp, 8
mov edi, eax
call fcn.00402b5d
cmp esi, eax
je 0x7ce8b3
lea ecx, [esp + 0x50]
call fcn.00415f41
jmp 0x7ce8c1
mov esi, dword [esp + 0x50]
call fcn.00402b5d
cmp esi, eax
je 0x7ce9c2
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.00404e6c
jmp 0x7ce9d6
call fcn.00402b5d
push 1
push dword [esp + 0x14]
lea ecx, [esp + 0x58]
call fcn.0040b613
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call fcn.0040326a
push eax
call fcn.0040939f
mov esi, dword [esp + 0x58]
add esp, 8
mov edi, eax
call fcn.00402b5d
cmp esi, eax
je 0x7ce8b3
lea ecx, [esp + 0x50]
call fcn.00415f41
jmp 0x7ce8c1
mov esi, dword [esp + 0x50]
call fcn.00402b5d
cmp esi, eax
je 0x7cea28
push dword [esp + 0x10]
lea ecx, [esp + 0x54]
call fcn.0040b52d
jmp 0x7cea3a
call fcn.00402b5d
push dword [esp + 0x10]
lea ecx, [esp + 0x54]
call fcn.004032b5
lea eax, [esp + 0x50]
mov ecx, ebx
push eax
call fcn.0040326a
push eax
call fcn.0040939f
mov esi, dword [esp + 0x58]
add esp, 8
mov edi, eax
call fcn.00402b5d
cmp esi, eax
je 0x7ce8b3
lea ecx, [esp + 0x50]
call fcn.00415f41
jmp 0x7ce8c1
cmp esi, 0x1c
je 0x7cea89
cmp esi, 0x1d
je 0x7cea89
cmp esi, 0x1e
je 0x7cea89
cmp esi, 0xd
je 0x7cea89
cmp esi, 0x11
jne 0x7ceaea
movzx eax, word [ebx + 0xa]
cmp eax, esi
jne 0x7ceaea
mov ecx, dword [ebx + 0xc]
mov eax, ebx
push 0
shl ecx, 4
sub eax, ecx
push 0
push edi
push dword [eax + 0x10]
push esi
call fcn.0040a38f
add esp, 0x14
cmp byte [eax + 8], 5
jne 0x7ceaba
movzx ecx, word [eax + 0xa]
cmp ecx, esi
je 0x7ceaea
mov ecx, dword [ebx + 0xc]
push 0
shl ecx, 4
sub ebx, ecx
push 0
push eax
push dword [ebx]
push esi
call fcn.0040a38f
add esp, 0x14
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
mov ecx, dword [ebx]
push 1
call fcn.0040ac86
test al, al
je case.0x7ceb0e.14
add esi, 0xfffffff3
cmp esi, 0xe
ja case.0x7ceb0e.14
movzx eax, byte [esi + 0x7cee90]
jmp dword [eax*4 + 0x7cee7c]
push edi
push ebx
call fcn.004106c7
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
push edi
push ebx
call fcn.0041519a
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
mov ecx, ebx
call fcn.0040326a
push eax
call fcn.0040e82c
jmp 0x7ce2bd
push 0
mov ecx, edi
call fcn.00407b99
mov dword [esp + 0x18], eax
test eax, eax
je 0x7cebfb
push esi
call fcn.004156d1
add esp, 4
test al, al
je 0x7ceba4
mov ecx, dword [esp + 0x18]
call fcn.00401b45
test al, al
je 0x7ceba4
push dword [esp + 0x2c]
call fcn.0040105a
jmp 0x7ce2bd
push 0
mov ecx, ebx
call fcn.00407b99
mov ecx, eax
test ecx, ecx
je 0x7cebfb
mov eax, dword [esp + 0x2c]
push 0
push 0
push dword [esp + 0x20]
cmp byte [eax + 4], 0x12
mov esi, dword [eax + 0x14]
push ecx
push dword [esp + 0x48]
sete byte [esp + 0x34]
call fcn.0040a38f
push eax
push dword [esp + 0x38]
push esi
call fcn.00404255
add esp, 0x20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0xa4]
push 0x20
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0
push dword [esi]
mov dword [esp + 0xa8], 0x10
call fcn.00410979
add esp, 8
mov dword [esp + 0x30], eax
mov ecx, esi
mov dword [esp + 0x18], 0
call fcn.0040d418
mov dword [esp + 0x1c], eax
test eax, eax
je 0x7ced0f
xor eax, eax
push 0
push 0
push eax
push dword [esp + 0x3c]
call fcn.0040ac6d
mov esi, eax
push 0
push esi
push ebx
call fcn.0040f461
push 0
push esi
push edi
mov dword [esp + 0x74], eax
call fcn.0040f461
mov esi, dword [esp + 0x60]
add esp, 0x28
mov dword [esp + 0x10], eax
cmp esi, 0x13
je 0x7cec95
cmp esi, 0x14
je 0x7cec95
cmp esi, 0x16
je 0x7cec95
cmp esi, 0x17
jne 0x7ceca8
mov ecx, eax
call fcn.00401b45
test al, al
jne 0x7ced31
mov eax, dword [esp + 0x10]
push 0
push 0
push eax
push dword [esp + 0x58]
push esi
call fcn.0040a38f
mov ecx, dword [esp + 0xb0]
add esp, 0x14
mov esi, eax
cmp ecx, dword [esp + 0xa0]
jb 0x7ceceb
push 4
push 0
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0xa4]
call fcn.00405e1b
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x18]
inc dword [esp + 0x9c]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jne 0x7cec50
mov eax, dword [esp + 0x98]
sub esp, 8
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 4], eax
call fcn.0040207c
add esp, 8
jmp 0x7ced3d
push dword [esp + 0x2c]
call fcn.0040105a
add esp, 4
mov ecx, dword [esp + 0x98]
mov esi, eax
lea eax, [esp + 0xa4]
cmp ecx, eax
je 0x7ce3bd
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x7ce3ba
mov ecx, dword [esp + 0xe4]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004087b5
add esp, 0xdc
ret