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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov esi, esp
mov dword [esi + 0x88], ebp
mov dword [esi + 0x8c], esp
mov dword [esi + 0x98], 0xffffffff
mov dword [esi + 0x94], 0x100299a0
mov edx, dword [ebp + 8]
lea eax, [esi + 0x90]
mov ecx, dword fs:[0]
mov dword [esi + 0x90], ecx
mov dword fs:[0], eax
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
lea edx, [esi + 0x38]
push 9
push 0x10063d64
mov dword [esi + 0x14], ecx
push ecx
mov dword [esi + 8], eax
push eax
push edx
call fcn.10055f00
add esp, 0x14
cmp dword [esi + 0x38], 0
je 0x100292d4
mov edi, dword [esi + 0x58]
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x6c]
mov ecx, edi
mov dword [esi + 0x1c], edx
mov dword [esi + 0x10], eax
sub ecx, edx
cmp ecx, eax
jae 0x100292de
mov edx, dword [esi + 0x5c]
mov eax, dword [esi + 0x68]
mov ebx, dword [esi + 0x60]
mov dword [esi + 0x28], edx
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x30], ebx
cmp eax, edx
mov dword [esi + 0x2c], eax
cmova edx, eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0x40]
mov dword [esi + 0x20], eax
dec eax
mov dword [esi + 0x84], edx
mov edx, dword [esi + 0x44]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], edx
mov edx, dword [esi + 0x50]
mov dword [esi + 0x78], edx
jmp 0x100291ad
cmp dword [esi + 0x28], 0xffffffff
mov ecx, dword [esi + 0x1c]
je 0x1002919c
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0xc]
mov edi, ecx
sub ecx, dword [esi + 0x1c]
cmp ecx, dword [esi + 0x10]
jae 0x100292de
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x34], edi
xor edx, edx
mov edi, 1
movzx ecx, byte [eax + ecx]
mov eax, 1
shld edx, eax, cl
shl edi, cl
test cl, 0x20
mov eax, 0
cmovne edx, edi
cmovne edi, eax
and edx, dword [esi + 0x80]
and edi, dword [esi + 0x84]
or edi, edx
je 0x10029190
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
cmp eax, edx
cmovb edx, eax
cmp dword [esi + 0x28], 0xffffffff
cmove edx, eax
lea ecx, [edx - 1]
cmp ecx, dword [esi + 0x1c]
jae 0x1002925a
mov eax, dword [esi + 0x7c]
mov ebx, dword [esi + 0xc]
mov ecx, edx
neg ecx
lea edi, [eax + edx]
lea edx, [edx + ebx - 1]
nop word cs:[eax + eax]
nop
test ecx, ecx
je 0x10029270
cmp edx, dword [esi + 0x10]
jae 0x100296c5
movzx ebx, byte [edi]
mov eax, dword [esi + 0x18]
inc ecx
dec edi
cmp bl, byte [eax + edx]
lea edx, [edx - 1]
je 0x10029220
mov eax, dword [esi + 0x34]
sub eax, dword [esi + 0x2c]
sub eax, ecx
cmp dword [esi + 0x28], 0xffffffff
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
jne 0x10029199
jmp 0x1002919c
test edx, edx
jne 0x10029891
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [esi + 0x28], 0xffffffff
mov ecx, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
cmove ecx, dword [esi + 0x1c]
add edx, eax
cmp ecx, edi
cmovbe ecx, edi
nop dword [eax + eax]
cmp ecx, edi
je 0x100292e5
cmp dword [esi + 0x24], edi
je 0x1002975a
mov ebx, dword [esi + 0xc]
add ebx, edi
cmp ebx, dword [esi + 0x10]
jae 0x10029780
mov eax, dword [esi + 0x20]
movzx ebx, byte [eax + edi]
cmp bl, byte [edx + edi]
lea edi, [edi + 1]
je 0x10029290
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x34]
sub eax, ecx
cmp dword [esi + 0x28], 0xffffffff
mov dword [esi + 0xc], eax
jne 0x10029199
jmp 0x1002919c
cmp byte [esi + 0x46], 0
je 0x10029369
mov dl, 1
jmp 0x100293de
mov edi, dword [esi + 8]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
lea ebx, [ecx + 9]
mov dword [esi + 0xc], ecx
mov ecx, ebx
test ecx, ecx
je 0x10029316
nop word [eax + eax]
cmp ecx, eax
jae 0x10029310
cmp byte [edi + ecx], 0xbf
jg 0x10029316
jmp 0x100297d5
jne 0x100297d5
cmp eax, ecx
je 0x1002932d
movzx edx, byte [edi + ecx]
add dl, 0xd0
cmp dl, 0xa
jae 0x10029335
inc ecx
test ecx, ecx
jne 0x10029300
jmp 0x10029316
mov edx, eax
test ecx, ecx
jne 0x1002933b
jmp 0x100293b4
mov edx, ecx
test ecx, ecx
je 0x100293b4
cmp eax, edx
jbe 0x100293b2
cmp byte [edi + edx], 0xbf
jg 0x100293b4
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push 0x10063ebc
push eax
push edx
push eax
push edi
call fcn.1005f490
add esp, 0x14
jmp 0x100298b0
mov edx, dword [esi + 0x40]
movzx ebx, byte [esi + 0x45]
test edx, edx
je 0x10029508
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x68]
cmp edx, eax
mov dword [esi + 0x10], eax
jae 0x1002951d
cmp byte [ecx + edx], 0xc0
jge 0x10029523
mov ebx, ecx
mov byte [esi + 7], 1
push 0x10063b20
push edx
push 0
push dword [esi + 0x10]
push ebx
call fcn.1005f490
add esp, 0x14
jmp 0x100298b0
jne 0x10029345
mov edi, eax
sub edi, edx
cmp edi, 8
jb 0x100293dc
mov eax, dword [esi + 8]
mov edi, 0x6c6f6320
mov dword [esi + 0x10], ebx
mov ebx, 0x206e6d75
xor edi, dword [eax + edx]
xor ebx, dword [eax + edx + 4]
or ebx, edi
je 0x100294a6
mov dl, 1
mov eax, dword [ebp + 8]
mov ebx, dword [esi + 0x14]
mov ecx, dword [eax]
mov eax, dword [esi + 8]
cmp ecx, ebx
jbe 0x1002943d
test ebx, ebx
mov dword [esi + 0x18], edx
je 0x10029427
push ebx
push 1
push ecx
push dword [esi + 8]
mov dword [esi + 0xc], ecx
call fcn.10002ae0
add esp, 0x10
mov edx, dword [esi + 0x18]
test eax, eax
jne 0x1002943d
mov dword [esi + 0x98], 1
push ebx
push 1
call fcn.1005ee90
add esp, 8
jmp 0x100298b0
push 1
push ecx
push dword [esi + 8]
call fcn.10002ac0
add esp, 0xc
mov edx, dword [esi + 0x18]
mov eax, 1
xor ecx, ecx
test dl, dl
mov edx, dword [esi + 0x10]
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ebx
cmovne edi, ecx
cmovne edx, ecx
mov dword [esi + 0x44], edx
mov dword [esi + 0x48], edi
movzx eax, byte [0x1008c829]
push 4
push 0x14
call fcn.10002ab0
add esp, 8
test eax, eax
je 0x100297f9
mov ecx, dword [esi + 0x48]
movsd xmm0, qword [esi + 0x38]
movsd xmm1, qword [esi + 0x40]
mov edx, dword [esi + 0x90]
mov dword [eax + 0x10], ecx
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword fs:[0], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [edx + 8]
mov dword [esi + 0x18], eax
mov ebx, eax
mov eax, dword [esi + 0x14]
test ebx, ebx
je 0x100294e6
nop word cs:[eax + eax]
nop
cmp ebx, eax
jae 0x100294e0
mov edi, dword [esi + 8]
cmp byte [edi + ebx], 0xbf
jg 0x100294e6
jmp 0x10029814
jne 0x10029814
cmp eax, ebx
je 0x10029548
mov edi, edx
mov edx, ebx
mov ebx, dword [esi + 8]
movzx ebx, byte [ebx + edx]
add bl, 0xd0
cmp bl, 0xa
jae 0x10029550
inc edx
mov ebx, edx
mov edx, edi
test ebx, ebx
jne 0x100294c0
jmp 0x100294e6
mov edi, dword [esi + 8]
mov eax, dword [esi + 0x14]
xor ecx, ecx
test bl, bl
jne 0x100292ee
jmp 0x100292de
jne 0x10029393
movzx eax, byte [ecx + edx - 1]
movzx edi, al
test al, al
js 0x10029603
mov eax, dword [esi + 0x14]
test bl, bl
je 0x10029669
mov edi, dword [esi + 8]
mov ecx, edx
jmp 0x100292ee
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x10]
jmp 0x10029562
cmp edx, eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], edx
mov ebx, edx
mov edx, edi
jb 0x100293dc
mov edi, edx
mov dword [esi + 0x24], ebx
sub edi, eax
jb 0x10029837
test eax, eax
je 0x10029586
mov ebx, dword [esi + 8]
mov eax, dword [esi + 0x10]
cmp byte [ebx + eax], 0xc0
mov eax, dword [esi + 0x10]
jl 0x10029837
test ecx, ecx
je 0x100295a1
mov ecx, dword [esi + 8]
cmp byte [ecx + edx], 0xbf
mov dword [esi + 0x98], 0
jle 0x10029837
add eax, dword [esi + 8]
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push edi
push eax
lea eax, [esi + 0x38]
push eax
call fcn.10057970
add esp, 0xc
cmp byte [esi + 0x38], 0
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x24]
mov dl, 1
jne 0x100292e0
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 8]
sub eax, edi
jb 0x1002985c
mov edx, dword [esi + 0x3c]
test edi, edi
je 0x100296f6
cmp edi, dword [esi + 0x14]
jae 0x100296f0
cmp byte [ecx + edi], 0xc0
jge 0x100296f6
jmp 0x1002985c
mov eax, ecx
movzx ecx, byte [ecx + edx - 2]
mov dword [esi + 0x18], eax
cmp cl, 0xbf
jg 0x1002963c
mov byte [esi + 0x24], bl
movzx ebx, byte [eax + edx - 3]
mov dword [esi + 0xc], ebx
cmp byte [esi + 0xc], 0xbf
jg 0x10029641
movzx eax, byte [eax + edx - 4]
and eax, 7
shl eax, 6
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0xc]
and eax, 0x3f
add eax, dword [esi + 0x20]
jmp 0x10029647
and ecx, 0x1f
jmp 0x10029653
mov eax, dword [esi + 0xc]
and eax, 0xf
movzx ebx, byte [esi + 0x24]
shl eax, 6
and ecx, 0x3f
or ecx, eax
shl ecx, 6
and edi, 0x3f
mov eax, dword [esi + 0x14]
or edi, ecx
mov ecx, dword [esi + 0x18]
test bl, bl
jne 0x1002953e
cmp edi, 0x110000
je 0x100292de
mov ebx, ecx
mov ecx, 0xffffffff
cmp edi, 0x80
jb 0x1002969f
mov ecx, 0xfffffffe
cmp edi, 0x800
jb 0x1002969f
xor ecx, ecx
cmp edi, 0x10000
setb cl
or ecx, 0xfffffffc
mov edi, dword [esi + 8]
mov eax, dword [esi + 0x14]
add ecx, edx
je 0x100296e9
cmp ecx, dword [esi + 0x10]
jae 0x1002973d
cmp byte [ebx + ecx], 0xbf
mov edx, ebx
jg 0x10029745
mov edx, ecx
jmp 0x10029395
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push 0x10063ab8
push dword [esi + 0x10]
push edx
call fcn.1005f0e0
add esp, 0xc
jmp 0x100298b0
xor ecx, ecx
jmp 0x100292ee
jne 0x1002985c
test ebx, ebx
je 0x10029706
mov ebx, dword [esi + 0x20]
cmp ebx, dword [esi + 0x14]
jne 0x1002985c
mov dword [esi + 0x10], edx
add edi, ecx
mov byte [esi + 7], 1
push eax
push edi
lea eax, [esi + 0x38]
push eax
call fcn.10057970
add esp, 0xc
cmp byte [esi + 0x38], 0
mov ecx, dword [esi + 0xc]
mov dl, 1
jne 0x100292e0
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0x3c]
cmp eax, ecx
jae 0x100297b0
xor edx, edx
jmp 0x100293de
mov edx, ebx
jne 0x100296be
cmp byte [edx + ecx - 1], 0
jns 0x100292ee
cmp byte [edx + ecx - 2], 0xbf
jmp 0x100292ee
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push 0x10063a88
push dword [esi + 0x1c]
push dword [esi + 0x24]
call fcn.1005f0e0
add esp, 0xc
jmp 0x100298b0
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
add ecx, dword [esi + 0x2c]
cmp eax, ecx
cmova ecx, eax
push 0x10063a98
push eax
push ecx
call fcn.1005f0e0
add esp, 0xc
jmp 0x100298b0
test ecx, ecx
je 0x100297c5
cmp eax, ecx
jbe 0x100297c5
mov eax, dword [esi + 8]
cmp byte [eax + ecx], 0xbf
jle 0x10029877
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esi + 0x14], ecx
mov dword [eax + 8], ecx
jmp 0x100293de
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push 0x10063eac
push eax
push ecx
push eax
push edi
call fcn.1005f490
add esp, 0x14
jmp 0x100298b0
mov dword [esi + 0x98], 2
push 0x14
push 4
call fcn.1005eeb0
add esp, 8
jmp 0x100298b0
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push 0x10063ecc
push eax
push ebx
push eax
push dword [esi + 8]
call fcn.1005f490
add esp, 0x14
jmp 0x100298b0
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push 0x10063edc
push edx
push eax
push dword [esi + 0x14]
push dword [esi + 8]
call fcn.1005f490
add esp, 0x14
jmp 0x100298b0
mov byte [esi + 7], 1
push 0x10063eec
push dword [esi + 0x20]
push edi
push dword [esi + 0x14]
push ecx
call fcn.1005f490
add esp, 0x14
jmp 0x100298b0
mov byte [esi + 7], 1
push 0x10063b10
push 0x30
push 0x10063add
call fcn.1005f040
add esp, 0xc
jmp 0x100298b0
mov byte [esi + 7], 1
mov dword [esi + 0x98], 0
push 0x10063aa8
push dword [esi + 0x1c]
push ecx
call fcn.1005f0e0
add esp, 0xc
ud2