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

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov edi, edx
test esi, esi
je 0x10038a36
test edi, edi
je 0x10038a36
cmp dword [edi + 0x8c], ebx
jl 0x10038a36
mov ecx, dword [esi + 0x254]
test ecx, ecx
je 0x10038a36
cmp dword [esi + 0x1300], ebx
je 0x10038a36
mov eax, dword [edi + 0x20]
mov ebp, 0x12c
inc eax
mov dword [esi], eax
lea eax, [edi + 0x91]
push ebp
push eax
push ecx
call fcn.10068630
mov eax, dword [esi + 0x254]
mov byte [eax + 0x12b], bl
push dword [esi + 0x254]
call fcn.10066210
add esp, 0x10
inc eax
mov dword [esi + 0x25c], eax
mov edx, dword [edi + 0x3b0]
test edx, edx
je 0x100383a6
mov ecx, esi
call fcn.10035a7d
mov dword [esi + 0x11c8], esi
push ebp
lea eax, [edi + 0x1bd]
push eax
push dword [esi + 0x1300]
call fcn.10068630
mov eax, dword [esi + 0x1300]
mov byte [eax + 0x12b], bl
push dword [esi + 0x1300]
call fcn.10066210
add esp, 0x10
inc eax
mov dword [esi + 0x1308], eax
mov edx, dword [edi + 0x3b4]
test edx, edx
je 0x100383f1
mov ecx, esi
call fcn.10035a2d
mov dword [esi + 0x2274], esi
mov eax, dword [edi + 0x3ac]
mov ecx, ebp
cmp eax, ebp
cmovb ecx, eax
lea eax, [esi + 0x2278]
push ecx
mov dword [esi + 0x23a4], ecx
push dword [edi + 0x3a8]
push eax
call fcn.10061840
push 0x20
pop ebp
push ebp
lea eax, [edi + 0x300]
push eax
lea eax, [esi + 0x106]
push eax
call fcn.10061840
mov eax, dword [edi + 0x320]
add esp, 0x18
mov dword [esi + 4], eax
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x10038471
mov eax, dword [edi + 0x8c]
cmp eax, 0x12c
jge 0x10038471
push eax
push ecx
lea eax, [esi + 0x126]
push eax
call fcn.10061840
mov eax, dword [edi + 0x8c]
add esp, 0xc
mov byte [eax + esi + 0x126], bl
jmp 0x10038477
mov byte [esi + 0x126], bl
cmp dword [edi + 0x39c], ebx
jle 0x100384b3
mov edx, dword [edi + 0x398]
mov al, byte [edx + 1]
movzx ecx, al
cmp al, 0x20
jb 0x10038491
mov ecx, ebp
movzx eax, byte [edx]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x38], ecx
mov eax, dword [edi + 0x398]
push ecx
add eax, 2
push eax
lea eax, [esi + 0x18]
push eax
call fcn.10061840
add esp, 0xc
jmp 0x100384b6
and dword [esi + 0x38], ebx
cmp dword [edi + 0x3a4], ebx
jle 0x100384f0
mov ecx, dword [edi + 0x3a0]
mov al, byte [ecx + 1]
cmp al, 0x20
jae 0x100384ce
movzx ebp, al
movzx eax, byte [ecx]
mov dword [esi + 0x64], eax
mov dword [esi + 0x60], ebp
mov eax, dword [edi + 0x3a0]
add eax, 2
push ebp
push eax
lea eax, [esi + 0x40]
push eax
call fcn.10061840
add esp, 0xc
jmp 0x100384f3
and dword [esi + 0x60], ebx
mov ebp, 0xffffff7a
cmp dword [edi], ebx
je 0x100385a1
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x100385a1
call fcn.1005d730
mov ecx, eax
mov dword [esi + 0x78], ecx
test ecx, ecx
je 0x1003859e
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x80], eax
mov eax, dword [edi + 4]
mov dword [esi + 0x7c], eax
push dword [edi + 4]
push dword [edi]
push ecx
call fcn.10061840
mov ecx, dword [esi + 0x23b4]
add esp, 0xc
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x23bc], eax
test ecx, ecx
jne 0x1003855a
call fcn.100340fe
mov dword [esi + 0x23b4], eax
jmp 0x10038561
mov ecx, dword [ecx]
call fcn.10033e68
mov ecx, dword [edi + 0x1c]
xor edx, edx
call fcn.10034aa2
mov ecx, eax
mov eax, dword [esi + 0x23b4]
test ecx, ecx
cmove ebx, ebp
mov dword [eax], ecx
mov ecx, dword [esi + 0x23b8]
call fcn.10031438
push dword [edi + 4]
mov edx, edi
call fcn.10032785
mov dword [esi + 0x23b8], eax
pop ecx
test eax, eax
jne 0x100385a1
mov ebx, ebp
jmp 0x100385a1
push 0xffffffffffffff83
pop ebx
cmp dword [edi + 0x84], 0
je 0x10038608
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x10038608
cmp ecx, 0x200
ja 0x10038608
call fcn.1005d730
mov dword [esi + 0x68], eax
test eax, eax
jne 0x100385ca
push 0xffffffffffffff83
pop ebx
jmp 0x100385e8
push dword [edi + 0x14]
push dword [edi + 0x84]
push eax
call fcn.10061840
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [esi + 0x6c], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x70], eax
mov ecx, dword [esi + 0x23ac]
call fcn.10033e68
mov ecx, dword [edi + 0x18]
xor edx, edx
call fcn.10034aa2
test eax, eax
mov dword [esi + 0x23ac], eax
cmove ebx, ebp
push dword [esi + 0x90]
mov edx, dword [edi + 0x2f8]
lea ebp, [esi + 0x8c]
push 0
mov ecx, ebp
call fcn.10046e44
pop ecx
pop ecx
test eax, eax
jne 0x10038644
push dword [edi + 0x2f8]
mov eax, dword [ebp]
push dword [edi + 0x2f0]
push dword [eax]
call fcn.10061840
add esp, 0xc
jmp 0x10038647
push 0xffffffffffffff83
pop ebx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x74], eax
and byte [edi + 0x3f0], 0xbf
mov eax, dword [esi + 0x74]
mov dword [esi + 0x84], eax
mov eax, dword [edi + 0x28]
jmp 0x100386d1
cmp dword [eax + 4], 1
jne 0x100386cf
mov eax, dword [eax + 8]
push 0x10
pop ecx
mov dword [esp + 0x10], eax
call fcn.1005d730
mov ebp, eax
test ebp, ebp
je 0x100387c9
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [ebp + 4], 1
call fcn.1005d730
mov ecx, eax
mov dword [ebp + 0xc], ecx
test ecx, ecx
je 0x100387c2
mov eax, dword [esp + 0x10]
push eax
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x18]
push dword [eax + 0xc]
push ecx
call fcn.10061840
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x74]
mov dword [ebp], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x74], ebp
mov eax, dword [eax]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10038662
mov al, byte [edi + 0x3f0]
shr al, 4
xor al, byte [esi + 0x95]
and al, 1
xor byte [esi + 0x95], al
movzx eax, byte [edi + 0x370]
mov dword [esi + 0xe4], eax
mov ax, word [edi + 0x372]
mov word [esi + 0xe8], ax
mov al, byte [edi + 0x3f1]
shr al, 1
xor al, byte [esi + 0x104]
and al, 1
xor al, byte [esi + 0x104]
mov byte [esi + 0x104], al
mov dl, byte [edi + 0x3f1]
shr dl, 6
xor dl, al
and dl, 2
xor dl, al
mov byte [esi + 0x104], dl
mov eax, dword [edi + 0x340]
mov dword [esi + 0xd4], eax
mov eax, dword [edi + 0x344]
mov dword [esi + 0xec], eax
mov cl, byte [edi + 0x3f1]
xor cl, dl
and cl, 4
xor cl, dl
mov byte [esi + 0x104], cl
mov al, byte [edi + 0x3f2]
shl al, 3
xor al, cl
and al, 8
xor al, cl
mov byte [esi + 0x104], al
cmp dword [edi + 0x330], 0
je 0x100387d4
mov ecx, dword [edi + 0x334]
test ecx, ecx
jle 0x100387d4
call fcn.1005d730
mov dword [esi + 0xd8], eax
test eax, eax
je 0x100387d1
push dword [edi + 0x334]
push dword [edi + 0x330]
push eax
call fcn.10061840
mov eax, dword [edi + 0x334]
add esp, 0xc
mov dword [esi + 0xf0], eax
jmp 0x100387d4
mov ecx, ebp
call fcn.1005d745
push 0xffffffffffffff83
pop eax
jmp 0x10038a3b
push 0xffffffffffffff83
pop ebx
cmp dword [edi + 0x338], 0
je 0x1003881c
mov ecx, dword [edi + 0x33c]
test ecx, ecx
jle 0x1003881c
call fcn.1005d730
mov dword [esi + 0xdc], eax
test eax, eax
je 0x10038819
push dword [edi + 0x33c]
push dword [edi + 0x338]
push eax
call fcn.10061840
mov eax, dword [edi + 0x33c]
add esp, 0xc
mov dword [esi + 0xe0], eax
jmp 0x1003881c
push 0xffffffffffffff83
pop ebx
mov al, byte [edi + 0x3f1]
shr al, 2
xor al, byte [esi + 0x105]
and al, 2
xor al, byte [esi + 0x105]
mov byte [esi + 0x105], al
mov cl, byte [edi + 0x3f2]
add cl, cl
xor cl, al
and cl, 4
xor cl, al
mov byte [esi + 0x105], cl
mov al, byte [edi + 0x3f0]
shr al, 2
xor al, cl
and al, 8
xor al, cl
mov byte [esi + 0x105], al
mov cl, byte [edi + 0x3f1]
xor cl, al
and cl, 0x10
xor cl, al
mov byte [esi + 0x105], cl
mov dl, byte [edi + 0x3f2]
shl dl, 3
xor dl, cl
and dl, 0x20
xor dl, cl
mov byte [esi + 0x105], dl
mov al, byte [edi + 0x3f0]
shl al, 4
xor al, dl
and al, 0x40
xor al, dl
mov byte [esi + 0x105], al
mov cl, byte [edi + 0x3f2]
shl cl, 4
xor cl, al
mov al, byte [edi + 0x3f2]
and cl, 0x7f
shl al, 4
xor cl, al
mov byte [esi + 0x105], cl
cmp dword [edi + 0x384], 0
je 0x10038908
mov ecx, dword [edi + 0x388]
test ecx, ecx
je 0x10038908
call fcn.1005d730
mov dword [esi + 0xc8], eax
test eax, eax
je 0x10038905
push dword [edi + 0x388]
push dword [edi + 0x384]
push eax
call fcn.10061840
mov eax, dword [edi + 0x388]
add esp, 0xc
mov dword [esi + 0xf4], eax
jmp 0x10038908
push 0xffffffffffffff83
pop ebx
mov cl, byte [edi + 0x3f0]
mov al, byte [edi + 0x3f0]
shl cl, 6
xor cl, byte [esi + 0x104]
shl al, 6
and cl, 0x7f
xor cl, al
mov byte [esi + 0x104], cl
mov al, byte [edi + 0x3f2]
shr al, 5
xor al, byte [esi + 0x105]
and al, 1
xor byte [esi + 0x105], al
cmp dword [edi + 0x38c], 0
je 0x1003898a
mov ecx, dword [edi + 0x390]
test ecx, ecx
je 0x1003898a
call fcn.1005d730
mov dword [esi + 0xcc], eax
test eax, eax
je 0x10038987
push dword [edi + 0x390]
push dword [edi + 0x38c]
push eax
call fcn.10061840
mov eax, dword [edi + 0x390]
add esp, 0xc
mov dword [esi + 0xf8], eax
jmp 0x1003898a
push 0xffffffffffffff83
pop ebx
mov al, byte [edi + 0x3f0]
shr al, 3
xor al, byte [esi + 0x104]
and al, 0x10
xor byte [esi + 0x104], al
mov cl, byte [edi + 0x3f2]
mov al, byte [esi + 0x104]
shr cl, 1
xor cl, al
and cl, 0x20
xor cl, al
mov byte [esi + 0x104], cl
cmp dword [edi + 0x378], 0
je 0x10038a26
mov ecx, dword [edi + 0x37c]
test ecx, ecx
je 0x10038a26
call fcn.1005d730
mov dword [esi + 0xd0], eax
test eax, eax
je 0x10038a23
push dword [edi + 0x37c]
push dword [edi + 0x378]
push eax
call fcn.10061840
mov eax, dword [edi + 0x37c]
add esp, 0xc
mov dword [esi + 0xfc], eax
mov al, byte [edi + 0x3f2]
shr al, 1
xor al, byte [esi + 0x104]
and al, 0x40
xor byte [esi + 0x104], al
mov eax, dword [edi + 0x380]
mov dword [esi + 0x100], eax
jmp 0x10038a26
push 0xffffffffffffff83
pop ebx
mov ecx, dword [edi + 0x394]
mov eax, ebx
mov dword [esi + 0x88], ecx
jmp 0x10038a3b
mov eax, 0xffffff53
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret