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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x28], 0
and dl, 2
mov byte [esp + 0xf], dl
cmp byte [edi], 3
mov eax, dword [edi + 8]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
jne 0x100353bd
call fcn.1002c590
test eax, eax
jne 0x100356fa
mov ebx, dword [edi + 0x74]
movsx eax, byte [edi + 0x44]
movzx ecx, word [edi + 0x46]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x1c], ecx
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x1a]
movzx ecx, cx
and ecx, eax
add ecx, dword [ebx + 0x38]
cmp dword [ebx + 0x14], 0
mov dword [esp + 0x10], ecx
jge 0x1003540c
mov ecx, ebx
call fcn.1002d700
test eax, eax
je 0x10035408
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x10]
cmp byte [esp + 0xf], 0
je 0x10035464
cmp byte [ebx + 8], 0
je 0x10035455
push ecx
push ebx
call fcn.1002cb10
mov esi, dword [ebx + 0x14]
add esp, 8
movzx ecx, ax
add esi, 2
add esi, ecx
mov eax, 0xaaaaaaab
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x24]
add ecx, ecx
mul ecx
shr edx, 1
cmp esi, edx
jg 0x10035455
cmp word [ebx + 0x18], 1
je 0x10035455
mov dword [esp + 0x28], 1
jmp 0x10035464
mov ecx, edi
call fcn.1002c350
test eax, eax
jne 0x100356fa
cmp byte [ebx + 8], 0
jne 0x100354a2
and byte [edi + 1], 0xf1
xor eax, eax
mov word [edi + 0x32], ax
cmp byte [edi], al
jne 0x10035493
movzx ecx, word [edi + 0x46]
test cx, cx
je 0x10035493
mov eax, dword [edi + 0x74]
cmp byte [eax + 8], 0
je 0x10035493
lea eax, [ecx - 1]
mov word [edi + 0x46], ax
jmp 0x100354a2
mov ecx, edi
call fcn.10031490
test eax, eax
jne 0x100356fa
test byte [edi + 1], 0x20
je 0x100354c0
mov edx, dword [edi + 0x40]
mov ecx, dword [esp + 0x14]
push edi
call fcn.1002c3f0
add esp, 4
test eax, eax
jne 0x100356fa
cmp dword [edi + 0x70], 0
jne 0x100354dd
mov edx, dword [edi + 0x40]
mov ecx, dword [esp + 0x24]
push 0
push dword [edi + 0x24]
push dword [edi + 0x20]
call fcn.1002c1f0
add esp, 0xc
mov ecx, dword [ebx + 0x48]
call fcn.10027d40
test eax, eax
jne 0x100356fa
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x30]
push eax
mov ecx, ebx
call fcn.10031ec0
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0x10], eax
mov ecx, ebx
lea eax, [esp + 0x10]
push eax
movzx eax, word [esp + 0x46]
push eax
call fcn.10032370
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x100356fa
cmp byte [ebx + 8], al
jne 0x1003561b
mov esi, dword [edi + 0x74]
cmp dword [esi + 0x14], eax
jge 0x10035549
mov ecx, esi
call fcn.1002d700
test eax, eax
jne 0x100356fa
movsx eax, byte [edi + 0x44]
mov ecx, dword [esp + 0x18]
dec eax
cmp ecx, eax
jge 0x1003555c
mov eax, dword [edi + ecx*4 + 0x7c]
jmp 0x1003555f
mov eax, dword [edi + 0x74]
mov eax, dword [eax + 4]
movzx ecx, word [esi + 0x18]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x40]
mov ax, word [eax + ecx*2 - 2]
mov ch, al
mov cl, ah
movzx eax, word [esi + 0x1a]
movzx ecx, cx
and ecx, eax
lea eax, [edx + 4]
add ecx, edx
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jae 0x100355a0
mov ecx, 0x11d8d
call fcn.100a36d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x4c]
push ecx
push esi
call eax
mov ecx, dword [esi + 0x48]
add esp, 8
movzx eax, ax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x14], eax
call fcn.10027d40
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100355f7
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov ecx, ebx
push dword [esp + 0x1c]
add eax, 4
push eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffffc
push eax
call fcn.10032490
add esp, 0x14
movzx edx, word [esi + 0x18]
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x28]
dec edx
mov ecx, esi
call fcn.10032370
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x100356fa
mov ecx, edi
call fcn.10034a40
mov esi, eax
test esi, esi
jne 0x100356f8
movsx ecx, byte [edi + 0x44]
cmp ecx, dword [esp + 0x18]
jle 0x10035698
mov ecx, dword [edi + 0x74]
call fcn.1002dd30
dec byte [edi + 0x44]
movsx eax, byte [edi + 0x44]
mov esi, dword [esp + 0x18]
cmp eax, esi
jle 0x10035680
lea ecx, [ecx]
mov cl, byte [edi + 0x44]
movsx eax, cl
dec cl
mov eax, dword [edi + eax*4 + 0x78]
mov byte [edi + 0x44], cl
test eax, eax
je 0x10035678
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x10035673
call fcn.10026170
jmp 0x10035678
call fcn.10021d40
movsx eax, byte [edi + 0x44]
cmp eax, esi
jg 0x10035650
movsx eax, byte [edi + 0x44]
mov ecx, edi
mov eax, dword [edi + eax*4 + 0x78]
mov dword [edi + 0x74], eax
call fcn.10034a40
mov esi, eax
test esi, esi
jne 0x100356f8
cmp dword [esp + 0x28], 0
je 0x100356d6
mov byte [edi], 2
movzx eax, word [ebx + 0x18]
cmp dword [esp + 0x1c], eax
jl 0x100356c6
mov dword [edi + 4], 0xffffffff
mov ax, word [ebx + 0x18]
dec ax
mov word [edi + 0x46], ax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [edi + 4], 1
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edi
call fcn.10030a20
cmp byte [esp + 0xf], 0
mov esi, eax
je 0x100356f0
mov ecx, edi
call fcn.1002c2f0
mov byte [edi], 3
xor eax, eax
cmp esi, 0x10
cmove esi, eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret