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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005e95c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf8
cmp byte [ebp + 8], 0
push ebx
push esi
mov esi, edx
push edi
mov dword [esp + 0x14], esi
je 0x1002a2e5
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x1002a2da
lea eax, [esp + 0x68]
xor ebx, ebx
push eax
push 0x1000
lea ecx, [esp + 0x4c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
call fcn.10017a53
mov dword [esp + 0x10c], ebx
mov edi, 0x76a7
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x44]
push dword [esp + 0x44]
sar eax, 1
push eax
push edi
push 0x104eb
call fcn.1003d445
pop ecx
pop ecx
call eax
push dword [esp + 0x44]
lea ecx, [esp + 0x70]
call fcn.100056f9
push 0xc745
mov byte [esp + 0x110], 1
call fcn.10017175
movzx eax, ax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push ecx
lea eax, [esp + 0x78]
push 1
push eax
call fcn.10029a9a
add esp, 0x14
lea eax, [esp + 0x6c]
mov edx, 0x44ff
mov ecx, 0x3757
push 0x5d70
push eax
push 0x4c21
push 1
push 0x2bc7
push 0x664d
push 1
push 0x5b9e
push 1
call fcn.10029267
add esp, 0x24
lea eax, [esp + 0x6c]
cmp dword [esp + 0x80], 8
cmovae eax, dword [esp + 0x6c]
push ebx
push eax
push edi
push 0xb90b
call fcn.1003d445
pop ecx
pop ecx
call eax
push 0x26e9
push 1
lea eax, [esp + 0x20]
mov edx, 0x4a76
push eax
push ecx
push ecx
push 0x5bcf
lea ecx, [esp + 0x84]
call fcn.10029b03
add esp, 0x18
mov dword [esp + 0x40], ebx
lea eax, [esp + 0x40]
push 0x4a07
push eax
push ecx
push esi
push ebx
mov edx, 0x25df
call fcn.10029c74
add esp, 0x14
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], 0x1d017002
mov dword [esp + 0x30], 0x7b030003
mov dword [esp + 0x34], 0x4b00a58f
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x88]
call fcn.1000a7c7
push 0x10
pop edx
lea ecx, [esp + 0xe8]
mov byte [esp + 0x10c], 2
call fcn.10019ec4
lea eax, [esp + 0xe8]
mov byte [esp + 0x10c], 3
push eax
push 0x2a74
push ecx
push 0x3702
push 1
lea edx, [esp + 0x98]
call fcn.10029c74
add esp, 0x14
mov ecx, ebx
mov dword [esp + 0x3c], ecx
push 0x78
pop eax
push 2
mov word [esp + 0x58], ax
pop esi
cmp esi, 6
jne 0x10029f34
push 4
pop ecx
push 8
mov dword [esp + 0x40], ecx
pop esi
jmp 0x10029f73
movzx edx, byte [esp + esi + 0x2d]
mov eax, esi
sub eax, ecx
push 0x7fb0
movzx eax, byte [esp + eax + 0x2e]
movzx eax, word [esp + eax*2 + 0x54]
mov ecx, eax
and eax, edx
or ecx, edx
lea edx, [esp + 0x40]
sub ecx, eax
movzx eax, byte [esp + esi + 0x30]
push ecx
push ecx
push 1
push ecx
mov word [esp + eax*2 + 0x64], cx
call fcn.10029cb6
mov ecx, dword [esp + 0x50]
add esp, 0x14
add esi, 2
cmp esi, 0xc
jb 0x10029f23
xor eax, eax
mov dword [esp + 0xc8], 7
mov word [esp + 0x58], ax
lea ecx, [esp + 0xb4]
mov word [esp + 0xb4], ax
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0xc8], ebx
call fcn.10005edd
push ecx
push ecx
lea eax, [esp + 0xbc]
mov byte [esp + 0x114], 4
push eax
lea ecx, [esp + 0x90]
call fcn.1002b2f7
push ebx
push 1
lea ecx, [esp + 0xbc]
mov byte [esp + 0x114], 3
call fcn.10005f65
xor eax, eax
lea edi, [esp + 0x50]
cmp dword [esp + 0x98], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [esp + 0x9c]
cmovae eax, dword [esp + 0x9c]
mov edi, 0x76a7
push eax
push edi
push 0x931b
call fcn.1003d445
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x1002a06c
push ebx
lea eax, [esp + 0xe8]
push eax
push dword [esp + 0x48]
mov eax, dword [esp + 0x20]
push dword [eax]
push esi
push edi
push 0xaad1
call fcn.1003d445
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0xc287
setne bl
call fcn.1003d445
pop ecx
pop ecx
call eax
test bl, bl
jne 0x1002a0ca
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0xf0]
call fcn.10005f65
push ebx
push 1
lea ecx, [esp + 0x8c]
mov byte [esp + 0x114], 1
call fcn.10005f65
mov edi, dword [esp + 0x18]
inc edi
mov dword [esp + 0x18], edi
cmp edi, 0x12c
jb 0x10029ebe
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
push ebx
push 1
lea ecx, [esp + 0x74]
call fcn.10005f65
lea ecx, [esp + 0x44]
call fcn.1000606d
jmp 0x1002a31e
push 0x22
pop eax
xor ebx, ebx
mov dword [esp + 0x10], 0x74018900
push 2
mov ecx, ebx
mov word [esp + 0x20], ax
pop esi
mov dword [esp + 0x38], ecx
cmp esi, 2
jne 0x1002a0f2
push esi
pop ecx
mov dword [esp + 0x38], ecx
jmp 0x1002a131
movzx edx, byte [esp + esi + 0x11]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0xe]
movzx ecx, word [esp + eax*2 + 0x1c]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x10]
add ecx, edx
mov word [esp + eax*2 + 0x1c], cx
lea eax, [esp + 0x38]
push eax
push 1
mov ecx, 0x1343
call fcn.10029cef
mov ecx, dword [esp + 0x40]
add esp, 8
add esi, 2
cmp esi, 4
jb 0x1002a0e5
xor eax, eax
mov dword [esp + 0xac], ebx
push 7
mov word [esp + 0x22], ax
lea ecx, [esp + 0xa0]
pop edi
mov word [esp + 0x9c], ax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0xb4], edi
call fcn.10005edd
push 1
push 0x618c
lea eax, [esp + 0xa4]
mov byte [esp + 0x114], 5
push eax
push 0x4602
push 0x752b
lea eax, [esp + 0x98]
mov dword [esp + 0x30], ebx
push eax
push 1
mov dl, 1
mov ecx, 0x74fe
call fcn.100298ab
add esp, 0x1c
mov dword [esp + 0x20], 0x73035301
mov ecx, ebx
mov dword [esp + 0x24], 0x4dd83103
mov dword [esp + 0x28], 0xd007c02
mov dword [esp + 0x14], ecx
push 0x20
pop eax
push 2
mov word [esp + 0x62], ax
pop esi
cmp esi, 4
jne 0x1002a1e1
push esi
pop ecx
push 6
mov dword [esp + 0x18], ecx
pop esi
jmp 0x1002a21e
movzx edx, byte [esp + esi + 0x21]
mov eax, esi
sub eax, ecx
push 1
movzx eax, byte [esp + eax + 0x22]
movzx eax, word [esp + eax*2 + 0x60]
mov ecx, eax
and eax, edx
or ecx, edx
lea edx, [esp + 0x18]
sub ecx, eax
movzx eax, byte [esp + esi + 0x24]
push ecx
push 0x657b
mov word [esp + eax*2 + 0x68], cx
call fcn.100299bf
mov ecx, dword [esp + 0x20]
add esp, 0xc
add esi, 2
cmp esi, 0xc
jb 0x1002a1d1
xor eax, eax
mov dword [esp + 0xe0], edi
mov word [esp + 0x64], ax
lea ecx, [esp + 0xcc]
mov word [esp + 0xcc], ax
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0xe0], ebx
call fcn.10005edd
push ecx
push ecx
lea eax, [esp + 0xd4]
mov byte [esp + 0x114], 6
push eax
lea ecx, [esp + 0xa8]
call fcn.1002b2f7
push ebx
push 1
lea ecx, [esp + 0xd4]
mov byte [esp + 0x114], 5
call fcn.10005f65
xor eax, eax
lea edi, [esp + 0x5c]
stosd dword es:[edi], eax
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x9c]
stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.100286ca
mov ecx, dword [ebp + 0x10]
push ebx
push 1
mov dword [ecx], eax
lea ecx, [esp + 0xa4]
call fcn.10005f65
push ebx
push 1
lea ecx, [esp + 0xf0]
call fcn.10005f65
push ebx
push 1
lea ecx, [esp + 0x8c]
call fcn.10005f65
jmp 0x1002a0b0
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x1002a31e
mov esi, dword [ebp + 0x14]
mov dword [esi], 0xfffffff3
jmp 0x1002a319
push 0
push 1
push 1
lea eax, [esp + 0x1b]
mov byte [esp + 0x1b], 0
push 0x3bd2
push eax
mov edx, 0x52fd
mov ecx, 0x418b
call fcn.1002a4b1
add esp, 0x14
dec dword [esi]
cmp dword [esi], 0xffffffeb
jg 0x1002a2f0
mov ecx, dword [esp + 0x104]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret