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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
mov dword [esp + 0x50], edx
push esi
mov eax, dword [eax]
mov esi, dword [edx]
mov dword [esp + 0x20], eax
mov eax, dword [0x1006bbf0]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], ebx
push edi
test eax, eax
je 0x10025401
call eax
test eax, eax
je 0x10025401
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x55
jmp 0x100256aa
mov eax, dword [ebp + 0x30]
mov edi, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x78], eax
push 0xfffffffffffffffe
pop eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
sar eax, 1
mov dword [esp + 0x68], eax
lea eax, [ecx + 4]
mov dword [esp + 0x10], eax
mov eax, 0x85
mov dword [esp + 0x7c], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], ebx
cmp word [esi], ax
jne 0x10025464
movzx edx, word [esi + 4]
mov eax, dword [edi + 0x24]
mov dword [esp + 0x70], eax
xor eax, eax
mov word [esp + 0x76], ax
lea eax, [esp + 0x70]
mov dword [esp + 0x54], edx
mov word [esp + 0x74], dx
mov dword [edi + 0x24], eax
mov ebx, dword [ebp + 0x38]
lea eax, [esi + 2]
xor edx, edx
mov dword [esp + 0x6c], eax
mov word [eax], dx
lea eax, [ecx*2 + 4]
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x10]
add esi, eax
mov dword [esp + 0x50], 0x77
mov eax, dword [edi + 0x40]
mov ecx, eax
mov dword [esp + 0x40], eax
mov eax, ebx
neg eax
mov dword [esp + 0x64], ecx
push 0x7c
sbb eax, eax
and eax, edx
mov dword [esp + 0x64], eax
pop edx
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x1c], esi
je 0x100254b5
mov dword [edi + 0x40], ecx
cmp dword [ebp + 0x10], 0
je 0x100254d6
mov word [esi], dx
xor ecx, ecx
add esi, 2
mov dword [esp + 0x4c], esi
mov word [esi], cx
add esi, 2
add dword [esp + 0x10], 2
mov dword [esp + 0x1c], esi
push eax
push edi
push dword [ebp + 0x1c]
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x64]
push eax
push dword [ebp + 0xc]
lea eax, [esp + 0x48]
push eax
lea edx, [esp + 0x44]
lea ecx, [esp + 0x60]
call fcn.100219ac
add esp, 0x28
test eax, eax
je 0x100256a1
mov eax, dword [esp + 0x40]
cmp dword [edi + 0x40], eax
jbe 0x10025527
mov eax, dword [edi + 0x40]
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x1c]
test ebx, ebx
jne 0x1002562b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
cmp word [eax], cx
je 0x10025565
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ecx
jmp 0x100255e8
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
test ecx, ecx
js 0x1002559e
cmp ecx, eax
jne 0x1002557f
cmp dword [esp + 0x30], edx
je 0x1002559a
mov ebx, dword [esp + 0x14]
test ebx, ebx
jns 0x10025593
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ecx
or ecx, 0xffffffff
mov dword [esp + 0x34], ecx
test ecx, ecx
jns 0x100255b6
test eax, eax
js 0x100255b6
mov ecx, dword [esp + 0x28]
test ecx, ecx
jns 0x100255ba
mov ecx, eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
jmp 0x100255be
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov eax, ecx
xor eax, ebx
test eax, 0xfffffffd
jne 0x100255df
cmp dword [esp + 0x20], edx
jne 0x100255df
or ebx, ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ebx
jmp 0x100255e4
or dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x18]
cmp dword [ebp + 0x10], 0
je 0x1002562b
mov edx, dword [esp + 0x38]
xor ecx, ecx
push ecx
xor ebx, ebx
shr edx, 0xb
push edi
mov word [esi], cx
inc ebx
push ecx
and edx, ebx
mov ecx, eax
call fcn.100219ac
mov ecx, eax
add esp, 0xc
cmp ecx, 0xfffffffd
jne 0x10025618
mov dword [edi + 0x74], ebx
jmp 0x1002562b
test ecx, ecx
js 0x10025683
cmp ecx, dword [edi + 0x48]
jle 0x10025624
mov dword [edi + 0x48], ecx
mov eax, dword [esp + 0x4c]
mov word [eax], cx
mov ebx, dword [esp + 0x24]
push 0x7c
pop edx
cmp word [ebx], dx
jne 0x100256b3
cmp dword [ebp + 0x38], 0
je 0x1002564e
mov eax, dword [esp + 0x58]
mov esi, dword [eax]
add esi, dword [esp + 0x5c]
add dword [esp + 0x10], 2
jmp 0x1002566c
mov eax, dword [esp + 0x50]
mov word [esi], ax
mov eax, esi
sub eax, dword [esp + 0x18]
sar eax, 1
mov word [esi + 2], ax
mov dword [esp + 0x18], esi
mov dword [esp + 0x7c], esi
add esi, 4
mov eax, dword [esp + 0x60]
add ebx, 2
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp + 0x38]
jmp 0x100254a8
cmp ecx, 0xfffffffe
jne 0x1002568d
push 0x24
pop eax
jmp 0x1002569c
xor eax, eax
cmp ecx, 0xfffffffc
setne al
dec eax
and eax, 0x2d
add eax, 0x19
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x38], 0
jne 0x100256db
mov edi, dword [esp + 0x18]
mov edx, esi
sub edx, edi
sar edx, 1
movzx ecx, word [edi + 2]
mov eax, ecx
mov word [edi + 2], dx
neg eax
mov edx, ecx
lea edi, [edi + eax*2]
test ecx, ecx
jg 0x100256c3
mov edi, dword [ebp + 0x34]
mov ecx, dword [esp + 0x3c]
push 0x78
pop eax
mov word [esi], ax
mov eax, esi
sub eax, ecx
sar eax, 1
mov word [esi + 2], ax
add esi, 4
cmp dword [esp + 0x54], 0
jle 0x10025784
mov eax, dword [edi + 0x24]
xor edx, edx
cmp word [eax + 6], dx
je 0x10025776
push dword [esp + 0x68]
xor eax, eax
mov word [esi], ax
mov eax, dword [esp + 0x3c]
shr eax, 0xb
push edi
and eax, 1
push eax
push 2
pop edx
call fcn.100219ac
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov eax, esi
sub eax, ecx
and eax, 0xfffffffe
push eax
push ecx
lea eax, [ecx + 4]
push eax
call fcn.10034880
mov ecx, dword [esp + 0x48]
mov eax, 0x81
add esp, 0xc
mov word [ecx], ax
lea eax, [esi + 4]
sub eax, ecx
mov ecx, dword [esp + 0x6c]
sar eax, 1
push 0x78
mov word [ecx], ax
pop ecx
mov word [esi + 4], cx
mov word [esi + 6], ax
add esi, 8
mov ecx, dword [esp + 0x10]
add ecx, 4
mov dword [esp + 0x10], ecx
jmp 0x1002577a
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov dword [edi + 0x24], eax
jmp 0x10025788
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x58]
mov dword [eax], esi
mov eax, dword [ebp + 8]
mov dword [eax], ebx
mov eax, dword [ebp + 0x20]
mov ebx, dword [esp + 0x14]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
mov edx, dword [esp + 0x34]
mov dword [eax], edx
mov eax, dword [ebp + 0x28]
mov edx, dword [esp + 0x20]
mov dword [eax], edx
mov eax, dword [ebp + 0x2c]
mov dword [eax], ebx
mov ebx, dword [ebp + 0x38]
test ebx, ebx
je 0x100257e4
mov edx, dword [ebx]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jge 0x100257e0
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x14
jmp 0x100256aa
add ecx, edx
mov dword [ebx], ecx
xor eax, eax
inc eax
jmp 0x100256ac