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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
movzx ecx, word [eax]
cmp cx, 0x40
jle 0x100338e5
push 0x40
push 0x1004749c
call fcn.100049b4
pop ecx
pop ecx
xor eax, eax
jmp 0x10033fbc
mov eax, dword [edi]
movsx ebx, cx
shl ebx, 6
add ebx, 0x2b
and ebx, 0xfffffff8
lea ecx, [ebx + 0x1bc]
push ecx
mov dword [esp + 0x2c], eax
call fcn.100031b5
mov esi, eax
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x1e], 0
pop ecx
mov dword [esp + 0x14], esi
jne 0x10033cc1
mov eax, dword [ebp + 0xc]
movsx ecx, word [eax]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x1c], ecx
mov dword [esi], edi
call fcn.100118d5
test byte [ebp + 0x18], 8
mov dword [esi + 0x18], eax
je 0x1003393d
mov eax, dword [ebp + 0x1c]
jmp 0x10033940
or eax, 0xffffffff
mov dword [esi + 8], eax
movzx ax, byte [ebp + 0x18]
add ebx, esi
push 0x104
lea edi, [ebx + 0xb8]
push 0
push edi
mov dword [esi + 0x20], ebx
mov word [esi + 4], ax
call sub.MSVCR80.dll_memset
mov eax, dword [ebp + 8]
and dword [ebx + 0xc], 0
and dword [esp + 0x48], 0
add esp, 0xc
push dword [ebp + 0x10]
mov dword [ebx], eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x3c]
lea ecx, [ebx + 0x18]
push eax
mov dword [ebx + 4], edi
mov dword [ebx + 0x10], 4
mov dword [ebx + 0x14], ecx
mov dword [esp + 0x40], 0x1001cdd8
call fcn.100193c8
push 0x43
push dword [ebp + 0x10]
push ebx
call fcn.10030fea
add esp, 0x14
cmp dword [ebp + 0x10], 0
je 0x100339de
mov eax, dword [ebp + 0xc]
cmp word [eax], 0
je 0x100339cb
push dword [ebp + 0x10]
push 3
pop eax
call fcn.1001b68d
test eax, eax
pop ecx
je 0x100339de
push 8
push dword [esi + 0x18]
push dword [ebp + 0x10]
push dword [ebp + 8]
call fcn.1001d159
add esp, 0x10
mov eax, dword [ebp + 0xc]
and dword [esp + 0xc], 0
cmp word [eax], 0
jle 0x10033a13
lea ecx, [eax + 0x20]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [edi]
mov edx, dword [edx]
add dword [esp + 0x10], 0x38
mov dword [edi + ecx*4 + 4], edx
inc dword [edi]
movsx ecx, word [eax]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x100339f3
push eax
mov edi, ebx
call fcn.1003137c
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x1e], 0
pop ecx
jne 0x10033cc1
or dword [esp + 0x38], 0xffffffff
or dword [esp + 0x3c], 0xffffffff
or dword [esp + 0x34], 0xffffffff
lea eax, [esi + 0x24]
xor ecx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
cmp word [eax], cx
mov dword [esp + 0x20], ecx
mov dword [esp + 0xc], ecx
jle 0x10033cb7
xor eax, eax
push 0x20
push eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x78]
push eax
call sub.MSVCR80.dll_memset
fld qword [0x10048088]
mov eax, dword [esp + 0x2c]
fstp qword [esp + 0x8c]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x38], eax
imul eax, eax, 0x38
lea esi, [eax + edi + 8]
movsx eax, word [edi]
add esp, 0xc
cmp dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
jge 0x10033c1a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
shl eax, 6
lea eax, [eax + ecx + 0x60]
mov dword [esp + 0x30], eax
mov al, byte [esi + 0x15]
and al, 0xa
neg al
sbb eax, eax
neg eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x4c], eax
je 0x10033ad1
test eax, eax
jne 0x10033c1a
push dword [esi + 0x18]
lea eax, [ebx + 0xb8]
call fcn.10031029
and eax, dword [esp + 0x3c]
and edx, dword [esp + 0x40]
pop ecx
or eax, edx
jne 0x10033b03
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x20]
jne 0x10033bfd
inc dword [esp + 0x20]
jmp 0x10033bfd
mov eax, dword [esi + 0xc]
test byte [eax + 0x22], 0x10
je 0x10033b86
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x10033b17
mov eax, dword [eax]
jmp 0x10033b19
xor eax, eax
push dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x10], ecx
sete cl
push ecx
push eax
push dword [esp + 0x48]
mov eax, ebx
push dword [esp + 0x48]
push esi
push dword [ebp + 8]
call fcn.100320ae
fstp qword [esp + 0x7c]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
add esp, 0x1c
test eax, eax
mov dword [esp + 0x50], 0x8000000
mov dword [esp + 0x58], eax
je 0x10033b66
cmp dword [eax + 0x20], 0
je 0x10033b66
mov dword [esp + 0x50], 0x9000000
fld qword [esp + 0x60]
and dword [esp + 0x54], 0
fld qword [0x10048048]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x10033bb7
fstp qword [esp + 0x60]
jmp 0x10033bb9
cmp dword [esp + 0xc], 0
jne 0x10033b98
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x10033b98
mov eax, dword [eax]
jmp 0x10033b9a
xor eax, eax
lea ecx, [esp + 0x50]
push ecx
push eax
push dword [esp + 0x44]
push dword [esp + 0x44]
push esi
push ebx
push dword [ebp + 8]
call fcn.1003235f
add esp, 0x1c
jmp 0x10033bb9
fstp st(0)
cmp dword [esp + 0x18], 0
je 0x10033bd2
fld qword [esp + 0x80]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x10033bf6
mov eax, dword [esp + 0x2c]
push 8
pop ecx
lea esi, [esp + 0x50]
lea edi, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x24]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], 1
mov dword [esp + 0x48], eax
cmp dword [esp + 0x4c], 0
jne 0x10033c1a
movsx eax, word [edi]
inc dword [esp + 0x2c]
add dword [esp + 0x30], 0x40
add esi, 0x38
cmp dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jl 0x10033ab3
mov eax, dword [esp + 0x70]
test eax, 0x1000000
je 0x10033c2b
mov ecx, dword [ebp + 0x14]
and dword [ecx], 0
mov ecx, dword [esp + 0x10]
and dword [esp + 0x34], eax
lea esi, [esp + 0x70]
mov edi, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], eax
and dword [esp + 0x18], 0x70000
movsd dword es:[edi], dword [esi]
je 0x10033c58
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov dword [ecx + 0x14], edx
inc dword [eax + 0x44]
jmp 0x10033c5c
or dword [ecx + 0x14], 0xffffffff
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 0xc]
imul eax, eax, 0x38
lea esi, [eax + edi]
push dword [esi + 0x20]
lea eax, [ebx + 0xb8]
call fcn.10031029
not eax
and dword [esp + 0x3c], eax
mov al, byte [esp + 0x4c]
pop ecx
mov ecx, dword [esp + 0x10]
not edx
and dword [esp + 0x3c], edx
mov byte [ecx + 0x28], al
mov esi, dword [esi + 0x3c]
test esi, esi
je 0x10033c9d
cmp dword [esp + 0x18], 0
je 0x10033cd3
movsx eax, word [edi]
inc dword [esp + 0xc]
add dword [esp + 0x10], 0x40
cmp dword [esp + 0xc], eax
jl 0x10033a56
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x1e], 0
je 0x10033ce6
push dword [esp + 0x28]
mov esi, dword [esp + 0x18]
call fcn.1003384e
jmp 0x100338dd
push dword [esi]
mov edi, dword [ebp + 8]
push 0x100474b8
call fcn.100049b4
pop ecx
pop ecx
jmp 0x10033cc1
mov eax, dword [esp + 0x34]
and eax, 0x4000000
je 0x10033cfb
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x10033cfb
and dword [ecx], 0
test byte [ebp + 0x18], 4
je 0x10033d12
test eax, eax
je 0x10033d12
mov byte [esi + 6], 1
add esi, 0x24
and dword [esi], 0xff7fffff
mov eax, dword [ebp + 8]
or esi, 0xffffffff
call fcn.10022909
mov ebx, dword [ebp + 0xc]
and dword [esp + 0xc], 0
cmp word [ebx], 0
mov esi, dword [esp + 0x14]
lea edi, [esi + 0x24]
jle 0x10033f75
mov eax, dword [ebp + 8]
cmp byte [eax + 0x168], 2
jne 0x10033e23
movzx eax, byte [edi + 0x28]
mov ecx, dword [ebp + 0xc]
imul eax, eax, 0x38
mov esi, dword [esp + 0x28]
lea ebx, [eax + ecx + 8]
push dword [ebx + 4]
push 0x100474d0
call fcn.10004157
mov ebx, dword [ebx + 8]
test ebx, ebx
pop ecx
pop ecx
je 0x10033d80
push ebx
push eax
push 0x100474dc
push eax
mov eax, esi
call fcn.10004164
add esp, 0x10
mov ecx, dword [edi]
test ecx, 0x70000
je 0x10033da2
mov ecx, dword [edi + 8]
push dword [ecx]
push eax
push 0x100474e8
push eax
mov eax, esi
call fcn.10004164
add esp, 0x10
jmp 0x10033dee
test ecx, 0x10000000
je 0x10033db2
push eax
push 0x100474fc
jmp 0x10033dbf
test cx, 0x3000
je 0x10033dcc
push eax
push 0x10047518
push eax
mov eax, esi
call fcn.10004164
add esp, 0xc
jmp 0x10033dee
test ecx, 0x8000000
je 0x10033dee
mov ecx, dword [edi + 8]
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push eax
push 0x10047530
push eax
mov eax, esi
call fcn.10004164
add esp, 0x14
test dword [edi], 0x1000000
je 0x10033e07
push eax
push 0x10047550
push eax
mov eax, esi
call fcn.10004164
add esp, 0xc
push 0xffffffffffffffff
push eax
movzx eax, byte [edi + 0x28]
push 0
push eax
push dword [esp + 0x1c]
push 0x73
push dword [esp + 0x34]
call fcn.100118a5
add esp, 0x1c
movzx eax, byte [edi + 0x28]
mov ecx, dword [ebp + 0xc]
imul eax, eax, 0x38
lea eax, [eax + ecx + 8]
mov ebx, dword [eax + 0xc]
mov esi, dword [ebx + 0x48]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call fcn.10029639
test byte [ebx + 0x22], 2
mov dword [esp + 0x10], eax
jne 0x10033f57
cmp dword [ebx + 0x1c], 0
jne 0x10033f57
mov eax, dword [edi]
test eax, 0x8000000
je 0x10033e89
mov esi, dword [esp + 0x24]
push 0xfffffffffffffff6
push dword [ebx + 0x38]
push 0
push 0
push dword [esi + 0x18]
push 0x21
push dword [esp + 0x34]
call fcn.100118a5
add esp, 0x1c
jmp 0x10033f16
test eax, 0x800000
jne 0x10033efb
test byte [ebp + 0x18], 0x10
jne 0x10033efb
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
xor eax, eax
cmp byte [ecx + 6], al
sete al
lea eax, [eax*4 + 0xa]
push eax
mov eax, dword [esp + 0x14]
push ebx
push dword [esi + 0x18]
push dword [ebp + 8]
call fcn.10023249
mov eax, dword [esp + 0x24]
add esp, 0x10
cmp byte [eax + 6], 0
jne 0x10033f16
cmp dword [ebx + 0xc], 0x40
jge 0x10033f16
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
xor edx, edx
jmp 0x10033ee2
shrd eax, ecx, 1
shr ecx, 1
inc edx
mov ebx, eax
or ebx, ecx
jne 0x10033edb
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
push 0xfffffffffffffff2
push edx
dec eax
push ecx
call fcn.10011c3f
jmp 0x10033f13
push dword [ebx + 4]
mov esi, dword [ebp + 8]
push 0
push dword [ebx + 0x18]
mov ebx, dword [esp + 0x1c]
call fcn.1001f1ca
mov esi, dword [esp + 0x30]
add esp, 0xc
test dword [edi], 0x70000
mov eax, dword [esi + 0x18]
mov dword [edi + 0x10], eax
je 0x10033f4b
mov esi, dword [edi + 8]
push esi
push dword [ebp + 8]
call fcn.10022bc5
push 0xfffffffffffffff0
push eax
push dword [esp + 0x20]
push dword [esi + 0x14]
push dword [edi + 0x14]
push 0xe
push dword [esp + 0x3c]
call fcn.100118a5
add esp, 0x24
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 8]
call fcn.10022909
mov eax, dword [ebp + 0xc]
movsx eax, word [eax]
inc dword [esp + 0xc]
add edi, 0x40
cmp dword [esp + 0xc], eax
jl 0x10033d36
mov esi, dword [esp + 0x14]
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
and dword [esp + 0xc], 0
mov dword [esi + 0x10], eax
or edx, 0xffffffff
cmp word [ebx], 0
mov eax, edx
jle 0x10033fba
lea edi, [esi + 0x44]
mov ecx, dword [esp + 0xc]
push edx
push eax
push dword [ebp + 0x18]
mov eax, esi
call fcn.10032d26
mov ecx, dword [edi]
mov dword [esi + 0x14], ecx
movsx ecx, word [ebx]
add esp, 0xc
inc dword [esp + 0xc]
add edi, 0x40
cmp dword [esp + 0xc], ecx
jl 0x10033f92
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret