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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb4
mov eax, dword [esp + 0xd0]
lea ecx, [esp + 0x10]
mov esi, dword [eax]
mov ebp, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov edi, dword [eax + 4]
lea eax, [esp + 0x74]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebx
push ecx
push dword [esp + 0xd0]
push eax
call fcn.10070490
add esp, 0xc
cmp dword [esp + 0x74], 0
jne 0x10024af9
cmp dword [esp + 0x78], 1
jne 0x10024af9
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
mov ebp, dword [eax + 0x20]
cmp edi, ebp
mov eax, ebp
cmovb eax, edi
test eax, eax
je 0x10024a5e
mov ecx, dword [esp + 0xcc]
xor edx, edx
mov ecx, dword [ecx + 0x1c]
nop dword [eax]
movzx ebx, byte [esi + edx]
cmp bl, byte [ecx + edx]
jne 0x10024a66
inc edx
cmp eax, edx
jne 0x10024a50
cmp ebp, edi
jbe 0x10024b6e
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0xc8]
mov ecx, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
mov ebp, ecx
movzx eax, byte [esp + 0xe]
movzx ecx, word [esp + 0xc]
mov word [esp + 8], cx
mov byte [esp + 0xa], al
movzx eax, byte [esp + 0xa]
movzx ecx, word [esp + 8]
mov word [esp + 0x10], cx
mov byte [esp + 0x12], al
cmp ebp, 1
jne 0x10024ec1
movzx eax, byte [esp + 0x12]
mov byte [esi + 0x1b], al
movzx eax, word [esp + 0x10]
mov word [esi + 0x19], ax
mov eax, dword [esp + 0x3c]
mov dword [esi + 4], 1
mov dword [esi + 8], ebx
mov dword [esi + 0xc], edi
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x38]
mov byte [esi + 0x18], al
mov dword [esi], 0
jmp 0x10024f5d
mov esi, dword [esp + 0xc8]
movsd xmm1, qword [esp + 0xa4]
movsd xmm2, qword [esp + 0x9c]
movsd xmm0, qword [esp + 0xac]
movsd qword [esi + 0x30], xmm1
movsd xmm1, qword [esp + 0x94]
movsd qword [esi + 0x28], xmm2
movsd xmm2, qword [esp + 0x8c]
movsd qword [esi + 0x38], xmm0
movsd qword [esi + 0x20], xmm1
movsd xmm1, qword [esp + 0x84]
movsd qword [esi + 0x18], xmm2
movsd xmm2, qword [esp + 0x74]
movsd qword [esi + 0x10], xmm1
movsd xmm1, qword [esp + 0x7c]
movsd qword [esi], xmm2
movsd qword [esi + 8], xmm1
jmp 0x10024f5d
lea esi, [esp + 0x20]
lea eax, [esp + 0x40]
push ebp
push esi
push eax
call fcn.1008d3b0
add esp, 0xc
push ebp
push esi
lea eax, [esp + 0x18]
push eax
call fcn.1008d480
add esp, 0xc
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x58], eax
movzx eax, word [esp + 0x19]
test edx, edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x3c], ecx
mov word [esp + 0xc], ax
movzx eax, byte [esp + 0x1b]
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0x18]
mov dword [esp + 0x38], eax
je 0x10024c8a
movzx eax, byte [esp + 0xe]
movzx ecx, word [esp + 0xc]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0xc8]
mov ebp, dword [esp + 0xcc]
test edi, edi
mov dword [esp + 0x30], ebx
mov byte [esp + 2], al
mov word [esp], cx
mov eax, edi
je 0x10024d21
mov eax, edx
movzx edx, byte [edx]
mov ebx, dword [ebp + 0x18]
movzx ecx, dl
test dl, dl
jns 0x10024cbc
movzx ebp, byte [eax + 1]
and ecx, 0x1f
mov dword [esp + 4], edi
and ebp, 0x3f
cmp dl, 0xdf
jbe 0x10024c9e
movzx esi, byte [eax + 2]
shl ebp, 6
and esi, 0x3f
or esi, ebp
cmp dl, 0xf0
jb 0x10024ca5
movzx edx, byte [eax + 3]
shl esi, 6
and ecx, 7
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0xcc]
shl ecx, 0x12
and edx, 0x3f
or edx, esi
mov esi, dword [esp + 0xc8]
or ecx, edx
mov edx, eax
cmp ecx, 0x110000
jne 0x10024cbe
jmp 0x10024d21
mov ecx, edi
mov edi, esi
mov esi, dword [esp + 0xc8]
mov edx, dword [esp + 0x58]
jmp 0x10024a8e
shl ecx, 6
or ecx, ebp
jmp 0x10024cb1
shl ecx, 0xc
or ecx, esi
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0xcc]
mov edx, eax
cmp ecx, ebx
jne 0x10024d21
cmp ebx, 0x80
mov ecx, 1
mov dword [esp + 4], edx
jb 0x10024cee
mov ecx, 2
cmp ebx, 0x800
jb 0x10024cee
cmp ebx, 0x10000
mov ecx, 4
sbb ecx, 0
push ecx
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.1008d3b0
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 4]
mov al, 0x2a
mov ebp, 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x10024aa3
movzx eax, byte [esp + 2]
movzx ecx, word [esp]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edi
mov byte [esp + 0x5e], al
mov byte [esp + 0xa], al
mov eax, dword [esp + 0x30]
mov word [esp + 0x5c], cx
mov word [esp + 8], cx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
push dword [ebp + 0x28]
push dword [ebp + 0x24]
lea ebx, [esp + 0x28]
push ebx
call fcn.10131d00
add esp, 0xc
test eax, eax
je 0x10024e70
mov edi, edx
push edx
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.1008d3b0
add esp, 0xc
push edi
push ebx
lea eax, [esp + 0x18]
push eax
call fcn.1008d480
add esp, 0xc
movzx ecx, word [esp + 0x19]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov word [esp], cx
mov ecx, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x54], ecx
movzx ecx, byte [esp + 0x1b]
mov ch, byte [esp + 0x18]
mov byte [esp + 2], cl
mov byte [esp + 3], ch
je 0x10024e91
movzx ecx, byte [esp + 2]
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
mov byte [esp + 0xe], cl
mov byte [esp + 0x52], cl
movzx ecx, word [esp]
mov edi, dword [edx + 0x30]
mov word [esp + 0xc], cx
mov word [esp + 0x50], cx
mov ecx, dword [esp + 0x1c]
cmp ebp, edi
mov dword [esp + 0x6c], ecx
mov ecx, edi
cmovb ecx, ebp
test ecx, ecx
je 0x10024e2e
mov edx, dword [edx + 0x2c]
xor esi, esi
nop
movzx ebx, byte [eax + esi]
cmp bl, byte [edx + esi]
jne 0x10024e36
inc esi
cmp ecx, esi
jne 0x10024e20
cmp edi, ebp
jbe 0x10024f6a
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov ebp, 1
xor edx, edx
mov dword [esp + 4], eax
movzx esi, word [esp]
movzx eax, byte [esp + 2]
mov ah, dl
mov edx, ebx
mov ebx, dword [esp + 4]
mov word [esp + 0x10], si
mov esi, dword [esp + 0xc8]
jmp 0x10024eaa
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov ebp, 1
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
mov ah, 0xc
jmp 0x10024e95
mov ah, byte [esp + 3]
movzx ecx, word [esp]
mov al, byte [esp + 2]
mov edx, dword [esp + 0x54]
mov word [esp + 0x10], cx
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x12], al
mov al, ah
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
cmp ebp, 1
je 0x10024abf
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 0x58], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x38]
mov byte [esi + 0x18], al
movzx eax, word [esp + 0x10]
mov word [esi + 0x19], ax
movzx eax, byte [esp + 0x12]
mov byte [esi + 0x1b], al
mov eax, dword [esp + 0x30]
mov dword [esi + 0x24], ecx
mov ecx, dword [esp + 0x70]
mov dword [esi + 0x20], eax
movzx eax, word [esp + 0x40]
mov byte [esi + 0x28], dl
mov edx, dword [esp + 4]
mov word [esi + 0x29], ax
movzx eax, byte [esp + 0x42]
mov byte [esi + 0x2b], al
mov eax, dword [esp + 0x60]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x34]
mov byte [esi + 0x38], al
movzx eax, word [esp + 0x20]
mov word [esi + 0x39], ax
movzx eax, byte [esp + 0x22]
mov byte [esi + 0x3b], al
mov dword [esi], ebx
mov dword [esi + 4], ebp
mov dword [esi + 8], edx
mov dword [esi + 0xc], edi
mov dword [esi + 0x1c], ecx
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov dword [esi + 0x2c], edx
mov dword [esi + 0x3c], ecx
mov eax, esi
add esp, 0xb4
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
lea esi, [esp + 0x24]
push esi
lea eax, [esp + 0x48]
push eax
call fcn.1008d3b0
add esp, 0xc
push edi
push esi
lea eax, [esp + 0x18]
push eax
call fcn.1008d480
add esp, 0xc
movzx edx, word [esp + 0x19]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
mov word [esp], dx
movzx edx, byte [esp + 0x1b]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
test ebx, ebx
mov byte [esp + 2], dl
movzx edx, byte [esp + 0x18]
je 0x10025023
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
movzx esi, word [esp]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x54]
movzx edx, byte [esp + 3]
mov dword [esp + 0x68], eax
movzx eax, byte [esp + 2]
mov word [esp + 0x20], si
movzx esi, word [esp + 8]
mov byte [esp + 0x22], al
movzx eax, byte [esp + 0xa]
mov word [esp + 0x10], si
mov esi, dword [esp + 0xc8]
mov byte [esp + 0x12], al
movzx eax, word [esp + 0x50]
mov word [esp + 0x40], ax
mov ah, byte [esp + 0x52]
mov byte [esp + 0x42], ah
jmp 0x10024ecf
mov ebx, eax
jmp 0x10024e51