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

Disassembly:
sub esp, 0x134
mov eax, dword [0x10049200]
xor eax, esp
mov dword [esp + 0x130], eax
cmp dword [0x1004a364], 0
mov ecx, dword [esp + 0x138]
push ebx
mov ebx, dword [esp + 0x140]
push esi
mov esi, dword [esp + 0x148]
push edi
mov edi, dword [esp + 0x154]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], edi
je 0x10014642
mov eax, 0xfffffbd7
jmp 0x10014e1f
push ebx
mov dword [0x1006c724], ecx
mov eax, dword [ecx + 0x2c]
push ecx
mov dword [0x1006c2b0], eax
call fcn.10023480
mov al, byte [ebx + 0x65]
test al, 8
je 0x10014668
mov eax, 0xfffff8ef
jmp 0x10014e1f
push ebp
mov ebp, dword [esp + 0x15c]
test ebp, ebp
jne 0x1001467e
mov eax, 0xfffffc15
jmp 0x10014e1e
mov ebx, dword [esp + 0x154]
xor ecx, ecx
test bl, 0x10
mov edx, 1
cmovne ecx, edx
mov dword [esp + 0x48], ecx
test bl, 2
je 0x100146a1
and ebx, 0xfffffff7
or ebx, 5
test al, 4
je 0x10014e19
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
cmp word [eax + 0x28], dx
ja 0x10014e19
push eax
call fcn.1002c050
test eax, eax
js 0x10014e1e
mov eax, dword [esp + 0x1c]
push 0x1004cb68
push dword [eax]
mov eax, dword [0x1006c2a4]
mov eax, dword [eax + 0xc]
call eax
push esi
lea eax, [esp + 0xbc]
mov dword [esp + 0x34], 0
push eax
call fcn.10018e30
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x10014713
mov eax, dword [esp + 0x2c]
mov esi, 0xfffffc16
push dword [eax + 0x10]
call fcn.1002aa90
mov eax, esi
jmp 0x10014e1e
mov cl, byte [edi]
xor edx, edx
mov esi, edi
test cl, cl
je 0x10014e04
mov eax, edx
inc esi
inc edx
mov dword [esp + 0x20], edx
cmp eax, 0xa
je 0x10014def
cmp cl, 0x2b
je 0x10014740
cmp cl, 0x2d
jne 0x10014e04
push esi
lea eax, [esp + 0x100]
push eax
call fcn.10018e30
test eax, eax
je 0x10014dc1
inc esi
add esi, eax
mov cl, byte [esi]
test cl, cl
je 0x10014765
mov edx, dword [esp + 0x20]
jmp 0x10014721
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x10014e04
sub esi, edi
inc esi
cmp ebp, esi
jne 0x10014e04
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0x44]
push eax
push dword [ebp + 0x10]
call fcn.1002a0b0
mov esi, eax
test esi, esi
js 0x10014e09
test bl, 2
je 0x100147c5
mov eax, dword [esp + 0x44]
xor edx, edx
mov eax, dword [eax]
movzx esi, word [eax]
lea ecx, [eax + 0xc]
test esi, esi
je 0x100147c5
mov edi, edi
test byte [ecx + 4], 0x20
jne 0x100147fc
movzx eax, byte [ecx + 1]
inc edx
lea ecx, [ecx + eax*8]
add ecx, 0x18
cmp edx, esi
jb 0x100147b0
mov eax, dword [esp + 0x20]
lea edi, [eax*8 + 0x18]
push edi
push dword [0x1004a36c]
call fcn.10029be0
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10014814
mov eax, dword [esp + 0x2c]
mov esi, 0xfffffc0d
push dword [eax + 0x10]
call fcn.1002aa90
mov eax, esi
jmp 0x10014e1e
mov eax, dword [esp + 0x2c]
mov esi, 0xfffffa86
push dword [eax + 0x10]
call fcn.1002aa90
mov eax, esi
jmp 0x10014e1e
mov esi, dword [eax]
push edi
push 0
push esi
call fcn.1003dd70
mov eax, dword [esp + 0x2c]
mov ecx, ebx
mov byte [esi + 1], al
add esp, 0xc
shr ecx, 3
mov eax, ebx
and ecx, 1
shr eax, 2
and eax, 1
add ecx, ecx
or ecx, eax
mov eax, ebx
and eax, 1
shr ebx, 1
add ecx, ecx
and ebx, 1
or ecx, eax
mov eax, dword [esi + 4]
add ecx, ecx
and eax, 0xfffffe1f
or ecx, ebx
lea ebx, [esp + 0x68]
shl ecx, 5
or ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x34], ecx
mov ebp, dword [eax + 0x14]
mov eax, dword [ebp + 0x110]
mov dword [esp + 0x58], eax
lea eax, [esi + 0x18]
mov dword [esp + 0x4c], eax
mov edi, eax
mov eax, dword [esp + 0x24]
mov dl, byte [eax]
mov byte [esp + 0x13], dl
test dl, dl
je 0x10014a11
inc eax
push eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x100]
push eax
call fcn.10018e30
mov ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x10014ad8
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x18]
push eax
movzx eax, word [ebp + 0xec]
push 0
push 0
push eax
push ecx
lea eax, [esp + 0x114]
push eax
push dword [esp + 0x50]
push dword [esp + 0x78]
call fcn.100190f0
mov esi, eax
test esi, esi
js 0x10014d91
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10014abb
lea ecx, [esp + 0x18]
push ecx
push dword [ebp + 0x64]
push eax
call fcn.1000e470
movzx eax, byte [eax]
mov dword [esp + 0x5c], eax
mov byte [edi + 4], al
cmp eax, 0xb
je 0x10014a94
cmp eax, 0xc
je 0x10014a94
lea eax, [esp + 0x18]
push eax
push dword [ebp + 0x78]
push dword [esp + 0x1c]
call fcn.1000e470
mov ecx, dword [eax]
mov eax, dword [esp + 0x4c]
mov dword [edi], ecx
cmp eax, edi
je 0x1001494f
nop
cmp dword [eax], ecx
je 0x10014a63
add eax, 8
cmp eax, edi
jne 0x10014940
cmp byte [esp + 0x13], 0x2d
jne 0x1001495f
mov eax, 0x8000
or word [edi + 6], ax
lea eax, [esp + 0x18]
push eax
push dword [ebp + 0x68]
push dword [esp + 0x1c]
call fcn.1000e470
test eax, eax
je 0x10014977
mov ax, word [eax]
mov word [ebx], ax
lea eax, [esp + 0x18]
push eax
push dword [ebp + 0x7c]
push dword [esp + 0x1c]
call fcn.1000e470
test eax, eax
je 0x10014992
mov ax, word [eax]
mov word [ebx + 2], ax
lea eax, [esp + 0x18]
push eax
push dword [ebp + 0x60]
push dword [esp + 0x1c]
call fcn.1000e470
test eax, eax
je 0x100149ae
mov ax, word [eax]
cmp word [esp + 0x5c], 0xa
mov word [ebx + 4], ax
jne 0x100149f0
movzx eax, ax
push eax
movzx eax, word [ebx + 2]
push eax
movzx eax, word [ebx]
push eax
call fcn.1002c390
test byte [ebp + 0x120], 0x80
je 0x100149e3
cmp al, 4
je 0x100149e1
cmp al, 5
je 0x100149e1
cmp al, 6
jne 0x100149e3
mov al, 1
cmp byte [edi + 5], 0xff
je 0x10014a6d
mov byte [edi + 5], al
mov eax, dword [esp + 0x24]
add edi, 8
inc eax
add ebx, 8
add eax, dword [esp + 0x38]
mov cl, byte [eax]
mov byte [esp + 0x13], cl
test cl, cl
jne 0x10014895
mov ecx, dword [esp + 0x34]
mov edi, dword [ebp + 0x114]
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x54]
mov dword [esp + 0x3c], edi
push eax
movzx eax, word [ebp + 0xee]
push 0
push 0
push eax
push dword [esp + 0x50]
lea eax, [esp + 0xd0]
push eax
push ecx
push edi
call fcn.10078f72
mov esi, eax
test esi, esi
js 0x10014d91
cmp dword [esp + 0x50], 0
je 0x10014ae2
mov esi, 0xfffffa85
jmp 0x10014d91
mov esi, 0xfffffa82
jmp 0x10014d91
mov edi, dword [esp + 0x24]
push 0
push 0
push 0
push 0xffffdfd5
push 0
push 0
push edi
push dword [esp + 0x38]
call fcn.1003db80
mov esi, 0xfffffbd8
jmp 0x10014d91
mov edi, dword [esp + 0x24]
push 0
push 0
push 0
push 0xffffdfd5
push 0
push 0
push edi
push dword [esp + 0x38]
call fcn.1003db80
mov esi, 0xfffffa17
jmp 0x10014d91
mov edi, dword [esp + 0x24]
push 0
push 0
push 0
push 0xffffdfd5
push 0
push 0
push edi
push dword [esp + 0x38]
call fcn.1003db80
mov esi, 0xfffffa1d
jmp 0x10014d91
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
push 1
push 0
push dword [esi]
push dword [ebx + 0x10]
push ebp
call fcn.1001bcd0
push dword [esp + 0x1c]
movzx eax, ax
mov ecx, 0xff
mov dword [esp + 0x44], eax
cmp ax, cx
jne 0x10014b3f
call fcn.10023590
test eax, eax
js 0x10014e1e
lea eax, [esp + 0x40]
mov dword [esp + 0x30], 1
push eax
push dword [esi]
push dword [ebx + 0x10]
push ebp
call fcn.1001a690
mov esi, eax
test esi, esi
js 0x10014d91
jmp 0x10014b54
call fcn.10023590
test eax, eax
js 0x10014e1e
mov dword [esp + 0x30], 1
push 0x800
call fcn.1003b030
mov ebx, eax
test ebx, ebx
jne 0x10014b6e
mov esi, 0xfffffc0d
jmp 0x10014d91
push ebx
push edi
call fcn.1002ea00
mov esi, eax
test esi, esi
js 0x10014d83
push 4
lea eax, [esp + 0x38]
push eax
push dword [ebp + 0xb4]
lea edi, [ebx + 4]
push edi
call fcn.1000df90
mov esi, eax
test esi, esi
js 0x10014d83
push dword [esp + 0x3c]
lea eax, [esp + 0xbc]
push eax
push dword [ebp + 0xb0]
push edi
call fcn.1000df90
mov esi, eax
test esi, esi
js 0x10014d83
push 2
lea eax, [esp + 0x44]
push eax
push dword [ebp + 0xa4]
push edi
call fcn.1000df90
mov esi, eax
test esi, esi
js 0x10014d83
push 1
lea eax, [esp + 0x58]
mov dword [esp + 0x58], 0
push eax
push dword [ebp + 0xbc]
push edi
call fcn.1000df90
mov esi, eax
test esi, esi
js 0x10014d83
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 4]
shl eax, 0x19
sar eax, 0x1f
push eax
push dword [ebp + 0xa0]
push edi
call fcn.1000dec0
mov esi, eax
test esi, esi
js 0x10014d83
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x1a
sar eax, 0x1f
push eax
push dword [ebp + 0x9c]
push edi
call fcn.1000dec0
mov esi, eax
test esi, esi
js 0x10014d83
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x18
sar eax, 0x1f
push eax
push dword [ebp + 0x90]
push edi
call fcn.1000dec0
mov esi, eax
test esi, esi
js 0x10014d83
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
shl eax, 0x17
sar eax, 0x1f
push eax
push dword [ebp + 0x98]
push edi
call fcn.1000dec0
mov esi, eax
test esi, esi
js 0x10014d83
mov eax, dword [esp + 0x20]
shl eax, 3
push eax
mov eax, dword [esp + 0x18]
add eax, 0x18
push eax
push dword [ebp + 0xc0]
push edi
call fcn.1000df90
mov esi, eax
test esi, esi
js 0x10014d83
mov ecx, dword [esp + 0x20]
lea eax, [ecx*8]
push eax
lea eax, [esp + 0x6c]
push eax
push dword [ebp + 0xc8]
push edi
call fcn.1000df90
mov esi, eax
test esi, esi
js 0x10014d83
push dword [esp + 0x28]
push dword [0x1004a36c]
call fcn.1003af60
push 0
push edi
push dword [esp + 0x40]
mov dword [esp + 0x34], 0
call fcn.1002fbe0
mov esi, eax
test esi, esi
js 0x10014d83
push ebx
call fcn.1003afb0
push dword [esp + 0x34]
push ebp
call fcn.10018cb0
mov esi, eax
test esi, esi
js 0x10014dac
push 1
push dword [esp + 0x20]
call fcn.100236a0
mov esi, eax
test esi, esi
js 0x10014dac
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x30], 0
push dword [ebx + 0x10]
call fcn.1002aa90
mov eax, dword [0x1006c724]
cmp dword [eax + 0x28], 0
jbe 0x10014d73
mov ecx, dword [ebx + 0x10]
cmp dword [ecx + 0x44], 0
jne 0x10014d73
mov dword [ecx + 0x44], eax
mov eax, dword [0x1006c724]
mov ecx, dword [ebx + 0x10]
mov eax, dword [eax + 0x28]
mov dword [ecx + 0x48], eax
mov esi, dword [esp + 0x48]
neg esi
sbb esi, esi
and esi, 0x1393
jmp 0x10014d89
push ebx
call fcn.1003afb0
test esi, esi
jns 0x10014e15
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10014da5
push eax
push dword [0x1004a36c]
call fcn.1003af60
cmp dword [esp + 0x30], 0
je 0x10014e09
call fcn.100252f0
mov eax, dword [esp + 0x2c]
push dword [eax + 0x10]
call fcn.1002aa90
mov eax, esi
jmp 0x10014e1e
push 0
push 0
push 0
push 0xffffdfd5
push 0
push 0
push esi
push dword [esp + 0x38]
call fcn.1003db80
mov eax, dword [esp + 0x2c]
mov esi, 0xfffffa1d
push dword [eax + 0x10]
call fcn.1002aa90
mov eax, esi
jmp 0x10014e1e
mov eax, dword [esp + 0x2c]
mov esi, 0xfffffc08
push dword [eax + 0x10]
call fcn.1002aa90
mov eax, esi
jmp 0x10014e1e
mov esi, 0xfffffc15
mov eax, dword [esp + 0x2c]
push dword [eax + 0x10]
call fcn.1002aa90
mov eax, esi
jmp 0x10014e1e
mov eax, 0xfffffae3
pop ebp
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1003de00
add esp, 0x134
ret 0x1c