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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
push ebx
push esi
push edi
push 1
pop esi
xor edi, edi
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edi
push esi
call fcn.30003638
mov ebx, eax
mov dword [ebp - 0x18], ebx
push esi
call fcn.30013360
mov dword [ebp - 4], eax
push esi
call fcn.300035e3
cmp word [ebx + 4], 0x8007
mov dword [ebp - 0x10], eax
push eax
jne 0x301436f1
push ebx
call fcn.30115557
push 0xc8
lea ecx, [ebp - 0xe0]
push ecx
push eax
call fcn.30001000
mov eax, dword [ebp + 0x10]
cmp eax, 3
je 0x3014366d
and word [ebp - 0xbc], 0xfffe
and word [ebp - 0xda], 0xf7ff
sub eax, edi
je 0x30143913
dec eax
dec eax
je 0x30143762
dec eax
je 0x301436ff
dec eax
jne 0x30143b0d
mov eax, dword [0x30179a58]
push dword [eax + 0x90]
lea eax, [ebp - 0xe0]
push eax
call fcn.30141d83
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x30]
test edi, edi
je 0x30143b18
lea eax, [ebp - 0xe0]
push eax
push dword [ebp + 8]
push 0xa
push ebx
call fcn.301443e3
push dword [ebp - 8]
push ebx
call fcn.301444dd
cmp dword [ebp - 0xc], 0
je 0x301436e9
mov eax, dword [ebp - 0xda]
shr eax, 0xa
and eax, 1
push eax
push ebx
call fcn.301435aa
push 1
pop eax
jmp 0x30143c4a
push dword [ebp - 4]
push ebx
call fcn.300e093c
jmp 0x3014364a
mov eax, dword [0x30179a58]
push dword [eax + 0x90]
lea eax, [ebp - 0xe0]
push eax
call fcn.30141d83
mov eax, dword [0x30179a58]
mov dword [ebp - 8], esi
mov ecx, dword [eax + 0x90]
mov cx, word [ecx + 0x1c]
mov word [ebp - 0xc8], cx
mov ecx, dword [ebp + 0xc]
test byte [eax + 0xa8], 1
mov edi, dword [ecx + 0x30]
je 0x301436ad
mov cl, byte [ecx + 0x3c]
mov eax, dword [ebp - 0xda]
and ecx, esi
shl ecx, 0xe
and ax, 0xbfff
or eax, ecx
mov word [ebp - 0xda], ax
jmp 0x301436ad
mov eax, dword [0x30179a58]
mov ecx, dword [eax + 0x90]
mov cx, word [ecx + 0x14]
mov edx, ecx
and dx, 0x100
cmp dx, 0x100
jne 0x30143843
lea eax, [ebp - 0xe0]
push eax
call fcn.30018c8e
mov eax, dword [ebp - 0xda]
and ax, 0xff01
or eax, esi
mov word [ebp - 0xda], ax
mov eax, dword [0x30179a58]
mov ecx, dword [eax + 0x90]
test byte [ecx + 0xc], 4
je 0x301437d7
mov cl, byte [ecx + 0xe]
mov edx, dword [ebp - 0xda]
and ecx, 2
shl ecx, 9
and dx, 0xfbff
mov dword [ebp - 0xc], 1
or edx, ecx
mov word [ebp - 0xda], dx
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0xda]
mov dl, byte [ecx + 0x6c]
and si, 0xfdff
and edx, 1
shl edx, 9
or esi, edx
mov edi, dword [ecx + 0x78]
mov word [ebp - 0xda], si
mov edx, dword [ebp - 0xda]
mov esi, edx
shr esi, 0xd
add ecx, 0x90
and esi, 1
cmp esi, dword [ecx]
je 0x30143903
mov cl, byte [ecx]
and dx, 0xdfff
and ecx, 1
shl ecx, 0xd
or edx, ecx
mov word [ebp - 0xda], dx
push dword [eax + 0x90]
lea eax, [ebp - 0xe0]
push eax
call fcn.30141d83
jmp 0x301436ad
mov esi, 0xff
and ecx, esi
jne 0x3014385a
and word [ebp - 0xda], 0xfe00
jmp 0x301437a7
and word [ebp - 0xda], 0xfeff
mov edx, dword [eax + 0x90]
test byte [edx + 0x10], 4
je 0x301438c9
mov dl, byte [ebp - 0xda]
xor dl, cl
and dx, si
xor word [ebp - 0xda], dx
mov ecx, dword [eax + 0x90]
test byte [ecx + 0x10], 1
je 0x301438d4
mov cl, byte [ecx + 0x12]
xor cl, byte [ebp - 0xdc]
and cx, si
xor word [ebp - 0xdc], cx
mov ecx, dword [eax + 0x90]
test byte [ecx + 0x10], 2
je 0x301438eb
mov cx, word [ecx + 0x12]
mov dl, byte [ebp - 0xdc]
xor dl, cl
and dx, si
xor edx, ecx
mov word [ebp - 0xdc], dx
jmp 0x301437a7
and word [ebp - 0xda], 0xff00
jmp 0x30143881
mov ecx, dword [ebp - 0xdc]
and cx, 0xff4e
or ecx, 0x4e
mov word [ebp - 0xdc], cx
jmp 0x301438a0
mov cl, byte [ebp - 0xdc]
and cx, si
or ch, 0x4d
mov word [ebp - 0xdc], cx
jmp 0x301437a7
push ecx
call fcn.30025bc1
mov eax, dword [0x30179a58]
jmp 0x3014382c
mov eax, dword [0x30179a58]
push dword [eax + 0x90]
lea eax, [ebp - 0xe0]
push eax
call fcn.30141d83
mov eax, dword [0x30179a58]
mov ecx, dword [ebp + 0xc]
test byte [eax + 0xa8], 1
mov edi, dword [ecx + 0x60]
je 0x3014395a
mov cl, byte [ecx + 0x6c]
mov edx, dword [ebp - 0xda]
and ecx, esi
shl ecx, 0xe
and dx, 0xbfff
or edx, ecx
mov word [ebp - 0xda], dx
mov ecx, dword [eax + 0x90]
mov edx, 0x400
test byte [ecx + 0x16], 0x10
je 0x3014398f
mov cx, word [ecx + 0x1a]
mov esi, dword [ebp - 0xda]
shr ecx, 1
and si, 0xfbff
and cx, dx
mov dword [ebp - 0xc], 1
or esi, ecx
mov word [ebp - 0xda], si
mov ecx, dword [eax + 0x90]
mov cx, word [ecx + 0x1a]
test ch, 1
je 0x301439c2
lea eax, [ebp - 0xcc]
push eax
call fcn.30018c9f
lea eax, [ebp - 0xe0]
push eax
call fcn.30018cc3
mov word [ebp - 0xc8], ax
jmp 0x301436ad
test cl, cl
jne 0x301439e4
and word [ebp - 0xcc], 0xff00
and word [ebp - 0xca], 0xfeff
mov eax, dword [eax + 0x90]
mov ax, word [eax + 0x1c]
jmp 0x301439b6
and word [ebp - 0xca], 0xfeff
mov ecx, dword [eax + 0x90]
mov esi, 0xff
test byte [ecx + 0x16], 4
je 0x30143ade
mov cl, byte [ecx + 0x1a]
xor cl, byte [ebp - 0xcc]
and cx, si
xor word [ebp - 0xcc], cx
mov ecx, dword [eax + 0x90]
mov cx, word [ecx + 0x1a]
xor cx, word [ebp - 0xca]
and cx, 0x200
xor word [ebp - 0xca], cx
mov ecx, dword [eax + 0x90]
test byte [ecx + 0x16], 1
je 0x30143aec
mov cx, word [ecx + 0x1a]
xor cx, word [ebp - 0xca]
and cx, 0x200
xor word [ebp - 0xca], cx
mov esi, dword [eax + 0x90]
xor ecx, ecx
mov cl, byte [ebp - 0xcc]
mov ch, byte [esi + 0x18]
mov word [ebp - 0xcc], cx
mov ecx, dword [eax + 0x90]
mov cx, word [ecx + 0x1a]
xor cx, word [ebp - 0xca]
and cx, dx
xor word [ebp - 0xca], cx
mov ecx, dword [eax + 0x90]
test byte [ecx + 0x16], 2
je 0x30143afd
mov cx, word [ecx + 0x1a]
xor cx, word [ebp - 0xca]
and cx, dx
xor word [ebp - 0xca], cx
mov edx, dword [eax + 0x90]
xor ecx, ecx
mov ch, byte [ebp - 0xc9]
mov cl, byte [edx + 0x19]
mov ebx, dword [ebp - 0x18]
mov word [ebp - 0xca], cx
mov eax, dword [eax + 0x90]
mov ax, word [eax + 0x1c]
mov word [ebp - 0xc8], ax
jmp 0x301436ad
and word [ebp - 0xcc], 0xff00
jmp 0x30143a15
mov cl, byte [ebp - 0xcc]
and cx, si
or ch, 0x4e
jmp 0x30143a6a
mov ecx, dword [ebp - 0xca]
and cx, 0xff4d
or ecx, 0x4d
jmp 0x30143abe
mov edi, dword [ebp - 0xe4]
jmp 0x301436ad
cmp dword [ebp - 0x10], 0xffffffff
jne 0x30143b89
mov eax, dword [ebx + 0x3b0]
mov ecx, dword [ebp - 4]
cmp dword [ebp + 0x10], 3
mov esi, dword [eax + ecx*4]
je 0x30143b39
lea eax, [esi + 0x44]
push eax
call fcn.30002732
push 0xc4
lea edi, [esi + 0x20]
push edi
lea eax, [ebp - 0xe0]
push eax
call fcn.30001000
push edi
push dword [esi + 0x40]
push ebx
call fcn.3000c69e
mov esi, dword [esi + 0xe4]
test esi, esi
je 0x30143b75
lea eax, [ebp - 0xe0]
push eax
push esi
call dword [ebp + 8]
mov esi, dword [esi + 0xc4]
jmp 0x30143b5e
push dword [ebp - 8]
push 0
push dword [ebp - 4]
push edi
push ebx
call fcn.3014451d
jmp 0x301436d0
mov eax, dword [0x3017f120]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x138]
push 0
mov dword [0x3017f120], eax
lea eax, [ebp - 0x138]
push eax
call fcn.30001d18
pop ecx
test eax, eax
pop ecx
jne 0x30143c40
push 0xc8
push dword [0x3017f804]
lea eax, [ebp - 0xe0]
push eax
call fcn.30001000
push dword [0x3017f804]
lea eax, [ebp - 0xe0]
push eax
call fcn.3014bae2
test eax, eax
je 0x30143c48
mov ebx, dword [ebp - 0x18]
mov eax, dword [0x3017f804]
test byte [ebx], 8
mov esi, dword [ebp - 0x10]
je 0x30143bfc
cmp dword [ebx + 0x3b8], 1
mov ecx, esi
je 0x30143bff
mov ecx, dword [eax + 0x20]
push eax
push ecx
push ebx
call fcn.3000c69e
cmp dword [ebp + 0x10], 3
jne 0x30143c51
cmp dword [ebp - 0xd0], esi
je 0x30143c61
push 0x14
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.30001000
push dword [0x3017f804]
lea eax, [ebp - 0xf8]
push eax
call fcn.30143445
test eax, eax
jne 0x30143c61
mov eax, dword [ebp - 0x14]
mov dword [0x3017f120], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0xc
push dword [0x3017f804]
push esi
push dword [ebp - 4]
push ebx
call fcn.3014445e
mov eax, dword [ebp - 0x14]
mov dword [0x3017f120], eax
jmp 0x301436d0