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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe8
mov ebx, dword [ebp + 8]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x44], ecx
mov eax, dword [ebx + 8]
mov esi, dword [ebx]
test eax, eax
mov dword [esp + 0x34], eax
je 0x10052142
js 0x10052efd
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x1005211f
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1005212f
mov dword [edi], eax
push dword [esp + 0x34]
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x10052147
push dword [esp + 0x34]
push 1
call fcn.1001a7e0
add esp, 8
jmp 0x10052f5a
mov eax, 1
mov edi, dword [esp + 0x34]
push edi
push esi
push eax
mov esi, eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xb0], edi
mov esi, dword [esp + 0xa4]
lea edi, [esp + 0x48]
push esi
push dword [esp + 0x48]
push edi
call fcn.1002a2f0
add esp, 0xc
cmp dword [esp + 0x48], 0
jne 0x100523e7
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x100523e7
mov ecx, dword [esp + 0x50]
push dword [esp + 0x34]
push dword [esp + 0xa4]
mov dword [esp + 0x90], ecx
push ecx
mov dword [esp + 0x38], eax
push eax
push edi
call fcn.1002a920
add esp, 0x14
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x48], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
je 0x100523d2
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x10], edx
sub edx, esi
mov ecx, esi
mov dword [esp + 4], esi
cmp edx, eax
jae 0x100523dd
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 4]
mov dword [esp + 0x14], ecx
cmp edi, esi
mov ecx, esi
mov dword [esp + 0x1c], edi
cmova ecx, edi
cmp dword [esp + 0x6c], 0xffffffff
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x94], ecx
je 0x100529d6
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x70]
mov ebx, esi
neg ebx
mov dword [esp + 0x98], ebx
sub ecx, esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x9c], ecx
mov eax, dword [esp + 8]
xor edi, edi
movzx ecx, byte [eax + edx]
mov eax, 1
shld edi, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edi, eax
cmovne eax, ecx
and edi, dword [esp + 0x30]
and eax, dword [esp + 0x18]
or eax, edi
lea edi, [esp + 0x48]
jne 0x100522f0
nop
lea eax, [ebx + edx]
cmp eax, dword [esp]
jae 0x100523dd
mov eax, dword [esp + 0x9c]
xor esi, esi
movzx ecx, byte [eax + edx]
mov eax, 1
sub edx, dword [esp + 4]
shld esi, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne esi, eax
cmovne eax, ecx
and esi, dword [esp + 0x30]
and eax, dword [esp + 0x18]
or eax, esi
je 0x100522a0
mov eax, dword [esp + 4]
lea ecx, [eax + edx]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
lea ebx, [esi + edx]
mov esi, dword [esp + 4]
cmp eax, ecx
cmovb ecx, eax
dec ecx
nop dword [eax]
cmp ecx, 0xffffffff
je 0x10052353
cmp ecx, esi
jae 0x10052c6c
mov eax, dword [esp]
lea edi, [edx + ecx]
cmp edi, eax
jae 0x10052c75
mov eax, dword [esp + 0x14]
lea edi, [ecx - 1]
movzx eax, byte [eax + ecx]
cmp al, byte [ebx + ecx]
mov ecx, edi
je 0x10052310
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc], esi
sub edx, dword [esp + 0x1c]
lea edx, [edx + edi + 1]
lea edi, [esp + 0x48]
jmp 0x100523ba
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
lea edi, [esp + 0x48]
cmp eax, ecx
cmovbe eax, ecx
mov dword [esp + 0xc], eax
nop dword [eax + eax]
cmp dword [esp + 0xc], ecx
je 0x10052e52
cmp dword [esp + 0x8c], ecx
je 0x10052c85
mov esi, dword [esp]
lea eax, [edx + ecx]
cmp eax, esi
jae 0x10052c97
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 4]
movzx eax, byte [eax + ecx]
cmp al, byte [ebx + ecx]
lea ecx, [ecx + 1]
je 0x10052370
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x10]
sub edx, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
sub edx, esi
mov ebx, dword [esp + 0x98]
cmp edx, dword [esp]
jb 0x1005226d
jmp 0x100523dd
cmp byte [esp + 0x56], 0
je 0x100529aa
mov esi, dword [esp + 0xa4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x48], str._DEBUG__Nothing_to_trim
mov dword [esp + 0x4c], 1
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], str.a_sequencefailed_to_write_whole_buffer
mov dword [esp + 0x54], 0
push edi
call fcn.1005f950
add esp, 4
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x34], 0
mov eax, esi
mov dword [esp], ecx
je 0x10052446
mov eax, dword [0x1035648c]
push dword [esp + 0xa0]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x44]
mov eax, esi
mov dword [esp], ecx
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebx + 8]
movsd xmm0, qword [ebx]
mov dword [esp + 0x14], eax
test esi, esi
mov dword [esp + 0x28], ecx
movsd qword [esp + 0x20], xmm0
je 0x10052656
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x24]
jne 0x1005247f
lea ebx, [esp + 0x20]
mov ecx, ebx
call fcn.10044a50
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov byte [eax + edx], 0x2e
mov dword [esp + 0x34], eax
lea eax, [esp + 0x38]
inc edx
mov dword [esp + 0xc4], 0
mov dword [esp + 0xb8], 0x20
mov byte [esp + 0xc8], 3
mov dword [esp + 0xa8], 0
mov dword [esp + 0xb0], 0
cmp esi, 0x2710
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0xbc], eax
mov eax, 0x27
mov dword [esp + 4], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0xc0], 0x101e0d34
jb 0x1005259d
mov ebx, 0x27
nop dword [eax]
mov eax, esi
mov ecx, 0xd1b71759
mov edi, esi
mul ecx
shr edx, 0xd
imul eax, edx, 0x2710
sub edi, eax
imul eax, edi, 0x147b
shr eax, 0x13
imul ecx, eax, 0x64
movzx eax, word [eax + eax + 0x101da3f2]
sub edi, ecx
cmp esi, 0x5f5e0ff
mov esi, edx
mov word [esp + ebx + 0x44], ax
movzx eax, di
movzx eax, word [eax + eax + 0x101da3f2]
mov word [esp + ebx + 0x46], ax
lea eax, [ebx - 4]
mov ebx, eax
ja 0x10052510
cmp edx, 0x63
jbe 0x1005258e
movzx ecx, dx
shr ecx, 2
imul ecx, ecx, 0x147b
shr ecx, 0x11
imul esi, ecx, 0x64
sub edx, esi
movzx edx, dx
movzx edx, word [edx + edx + 0x101da3f2]
mov word [esp + eax + 0x46], dx
add eax, 0xfffffffe
mov edx, ecx
cmp edx, 0xa
jae 0x100525a6
add dl, 0x30
mov byte [esp + eax + 0x47], dl
dec eax
jmp 0x100525b6
mov edx, esi
cmp edx, 0x63
ja 0x10052565
jmp 0x1005258e
movzx ecx, word [edx + edx + 0x101da3f2]
mov word [esp + eax + 0x46], cx
add eax, 0xfffffffe
mov edx, 0x27
lea ecx, [esp + eax + 0x48]
sub edx, eax
lea eax, [esp + 0xa8]
push edx
push ecx
push 0
push str.librarycore_src_numdiy_float.rs
push 1
push eax
call fcn.10028710
add esp, 0x18
mov edx, dword [esp + 4]
test al, al
jne 0x10052f04
movsd xmm0, qword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
movsd qword [esp + 0x48], xmm0
sub eax, edx
mov dword [esp + 0x50], ebx
mov edi, dword [esp + 0x48]
cmp eax, ebx
jae 0x10052623
lea esi, [esp + 0x20]
mov ecx, esi
push ebx
call fcn.10044b80
add esp, 4
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
jmp 0x10052627
mov ecx, dword [esp + 0x34]
add ecx, edx
push ebx
push edi
push ecx
mov esi, edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, ebx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x28], esi
je 0x10052652
mov eax, dword [0x1035648c]
push edi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
lea edi, [esp + 0x48]
mov eax, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x20]
mov dword [esp + 0xb0], eax
movsd qword [esp + 0xa8], xmm0
push dword [esp + 0x14]
push dword [esp + 4]
push edi
call fcn.1002a2f0
add esp, 0xc
cmp dword [esp + 0x48], 0
jne 0x100526ed
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x100526ed
mov esi, dword [esp + 0x50]
test esi, esi
je 0x1005276d
setns al
js 0x10052f24
mov byte [esp], al
mov eax, dword [0x103564a0]
mov edi, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x100526c7
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x100526da
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x10052772
movzx eax, byte [esp]
push esi
push eax
call fcn.1001a7e0
add esp, 8
jmp 0x10052f5a
mov dword [esp + 0x48], str._WARNING__Unable_to_preserve_original_file_name._6
mov dword [esp + 0x4c], 1
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], str.a_sequencefailed_to_write_whole_buffer
mov dword [esp + 0x54], 0
push edi
call fcn.1005f950
add esp, 4
push 0xc
push edi
call fcn.1018eb40
add esp, 8
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0xb0]
mov ebx, dword [esp + 0xa8]
sub eax, esi
cmp eax, edi
jae 0x10052758
mov edx, esi
lea ecx, [esp + 0x48]
push edi
call fcn.10044b80
add esp, 4
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
add eax, esi
push edi
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, edi
jmp 0x100527d0
mov edi, 1
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
test ebx, ebx
mov dword [esp], eax
je 0x100527b7
lea edi, [esp + 0x48]
mov edx, esi
mov ecx, edi
push ebx
call fcn.10044b80
add esp, 4
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
add edi, esi
push ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 4]
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [esp + 0x14]
mov dword [esp + 0x40], esi
movsd xmm0, qword [esp + 0x48]
cmp dword [esp + 0xac], 0
mov esi, dword [esp + 0xa4]
lea edi, [esp + 0x48]
movsd qword [esp + 0x38], xmm0
je 0x10052804
mov eax, dword [0x1035648c]
push ebx
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
lea eax, [esp + 0xdc]
push dword [esp + 0x40]
push dword [esp + 0x3c]
push esi
push dword [esp + 0x50]
push eax
call fcn.10158880
add esp, 0x14
movzx ebx, byte [esp + 0xdc]
cmp bl, 4
jne 0x1005289f
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x20]
lea ecx, [esp + 0xa8]
mov dword [esp + 0x48], 0x101e3570
mov dword [esp + 0x4c], 2
mov dword [esp + 0x58], 0
mov dword [esp + 0xa8], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0xac], 0x1003edf0
mov dword [esp + 0x54], 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
lea esi, [esp + 0x38]
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], 0x10043e50
push edi
call fcn.1005f950
add esp, 4
jmp 0x10052983
mov eax, dword [esp + 0x44]
movsd xmm0, qword [esp + 0xdc]
mov dword [esp + 0xa8], 0x101e35a4
mov dword [esp + 0xac], 3
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], 3
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x24], esi
lea esi, [esp + 0xd4]
movsd qword [esp + 0xd4], xmm0
mov dword [esp + 0x48], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x4c], 0x1003edf0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x10043e50
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], fcn.1014adc0
lea eax, [esp + 0xa8]
push eax
call fcn.1005f950
add esp, 4
cmp byte [esp + 0xd4], 3
jne 0x10052983
mov eax, dword [esp + 0xd8]
mov edi, dword [eax + 4]
mov esi, dword [eax]
mov dword [esp], eax
mov eax, dword [edi]
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x10052972
cmp dword [edi + 8], 9
jb 0x10052963
mov esi, dword [esi - 4]
mov eax, dword [0x1035648c]
push esi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [0x1035648c]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3c], 0
je 0x1005299c
mov eax, dword [0x1035648c]
push dword [esp + 0x38]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp bl, 4
sete al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x50]
movzx ebx, byte [esp + 0x55]
test edx, edx
je 0x10052b49
cmp edx, eax
jae 0x10052b5d
mov esi, dword [esp + 8]
cmp byte [esi + edx], 0xc0
jge 0x10052b67
jmp 0x10052c3b
mov ecx, dword [esp + 8]
dec edi
cmp edi, esi
mov dword [esp + 0x90], edi
jae 0x10052cbe
sub ecx, esi
mov ebx, esi
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x14]
neg ebx
mov dword [esp + 0xcc], ebx
add ecx, edi
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 8]
xor esi, esi
mov edi, 1
movzx ecx, byte [ecx + edx]
shld esi, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edi
cmovne edi, ecx
and esi, dword [esp + 0x30]
and edi, dword [esp + 0x18]
or edi, esi
je 0x10052a40
mov ebx, dword [esp + 0x10]
jmp 0x10052a8b
lea ecx, [ebx + edx]
lea edi, [esp + 0x48]
cmp ecx, eax
jae 0x100523dd
mov ecx, dword [esp + 0x98]
xor esi, esi
mov edi, 1
movzx ecx, byte [ecx + edx]
sub edx, dword [esp + 4]
shld esi, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edi
cmovne edi, ecx
and esi, dword [esp + 0x30]
and edi, dword [esp + 0x18]
or edi, esi
je 0x10052a40
mov ecx, dword [esp + 4]
lea ebx, [ecx + edx]
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x9c], edx
add ecx, edx
nop word [eax + eax]
sub edi, 1
jb 0x10052ae3
cmp ecx, eax
jae 0x10052c7e
movzx eax, byte [esi]
mov edx, dword [esp + 8]
dec ebx
dec esi
mov byte [esp + 0xc], al
movzx eax, byte [esp + 0xc]
cmp al, byte [edx + ecx]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp]
lea ecx, [ecx - 1]
je 0x10052ab0
jmp 0x10052b27
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
add ecx, edx
mov esi, ebx
nop
cmp dword [esp + 0x8c], esi
je 0x10052e4e
lea edi, [edx + esi]
cmp edi, eax
jae 0x10052c9d
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + esi]
cmp bl, byte [ecx + esi]
mov ebx, dword [esp + 0x1c]
lea esi, [esi + 1]
je 0x10052af0
mov ebx, dword [esp + 0x10]
sub ebx, dword [esp + 0x94]
mov edx, ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xcc]
lea edi, [esp + 0x48]
sub edx, dword [esp + 4]
cmp edx, eax
jb 0x10052a0b
jmp 0x100523dd
test bl, bl
je 0x100523dd
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
jmp 0x10052e76
mov esi, dword [esp + 8]
jne 0x10052c3b
movzx ecx, byte [esi + edx - 1]
test cl, cl
jns 0x10052bd3
mov byte [esp + 0x14], bl
movzx ebx, byte [esi + edx - 2]
cmp bl, 0xbf
jg 0x10052bae
mov dword [esp + 0xc], ecx
movzx ecx, byte [esi + edx - 3]
mov dword [esp + 4], ecx
cmp byte [esp + 4], 0xbf
jg 0x10052bb3
movzx esi, byte [esi + edx - 4]
and esi, 7
shl esi, 6
mov dword [esp + 0x18], esi
mov esi, dword [esp + 4]
and esi, 0x3f
add esi, dword [esp + 0x18]
jmp 0x10052bba
and ebx, 0x1f
jmp 0x10052bc6
mov esi, dword [esp + 4]
and esi, 0xf
mov ecx, dword [esp + 0xc]
shl esi, 6
and ebx, 0x3f
or ebx, esi
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
movzx ebx, byte [esp + 0x14]
test bl, bl
je 0x10052bea
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x88]
jmp 0x10052e64
cmp ecx, 0x110000
je 0x100523dd
mov ebx, 0xffffffff
cmp ecx, 0x80
jb 0x10052c1e
mov ebx, 0xfffffffe
cmp ecx, 0x800
jb 0x10052c1e
xor ebx, ebx
cmp ecx, 0x10000
setb bl
or ebx, 0xfffffffc
add edx, ebx
je 0x10052b51
cmp edx, eax
jae 0x10052c47
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x88]
cmp byte [eax + edx], 0xc0
jge 0x10052c54
mov esi, edx
mov ecx, 0x101e1164
jmp 0x10052f43
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x88]
jne 0x10052c3b
cmp byte [eax + edx - 1], 0
jns 0x10052c60
cmp byte [eax + edx - 2], 0xbf
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
jmp 0x10052e64
mov eax, esi
mov esi, 0x101e0ee0
jmp 0x10052cab
mov esi, 0x101e0ef0
mov ecx, edi
jmp 0x10052cab
mov esi, 0x101e0ef0
jmp 0x10052cab
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 4]
mov esi, 0x101e0ec0
jmp 0x10052cab
mov eax, esi
mov ebx, dword [esp + 0x1c]
add edx, ebx
mov esi, 0x101e0ed0
cmp eax, edx
cmova edx, eax
mov ecx, edx
mov ebx, dword [ebp + 8]
push esi
push eax
push ecx
call fcn.10026930
add esp, 0xc
jmp 0x10052f5a
cmp dword [esp + 0x1c], 0
je 0x10052d61
mov eax, dword [esp + 8]
xor esi, esi
xor edi, edi
movzx ecx, byte [eax + edx]
mov edx, 1
mov eax, 1
shld esi, eax, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, edi
and esi, dword [esp + 0x30]
and edx, dword [esp + 0x18]
or edx, esi
mov esi, 0x101e0ee0
jne 0x10052f5c
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x10]
add eax, eax
sub ebx, eax
mov eax, dword [esp]
cmp ebx, eax
lea edi, [esp + 0x48]
jae 0x100523dd
mov ecx, dword [esp + 8]
mov edx, ebx
xor edi, edi
movzx ecx, byte [ecx + edx]
mov edx, 1
shld edi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne edi, edx
cmovne edx, ecx
sub ebx, dword [esp + 4]
and edi, dword [esp + 0x30]
and edx, dword [esp + 0x18]
or edx, edi
je 0x10052d11
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 4]
jmp 0x10052cab
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov esi, eax
sub ecx, eax
mov dword [esp + 0xc], ecx
neg esi
mov ecx, edx
mov eax, dword [esp + 8]
mov edx, ecx
xor edi, edi
movzx ecx, byte [eax + ecx]
mov eax, 1
shld edi, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edi, eax
cmovne eax, ecx
and edi, dword [esp + 0x30]
and eax, dword [esp + 0x18]
or eax, edi
jne 0x10052df5
mov ebx, edx
lea eax, [esi + ebx]
lea edi, [esp + 0x48]
cmp eax, dword [esp]
jae 0x100523dd
mov eax, dword [esp + 0xc]
xor edi, edi
movzx ecx, byte [eax + ebx]
mov eax, 1
sub ebx, dword [esp + 4]
shld edi, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edi, eax
cmovne eax, ecx
and edi, dword [esp + 0x30]
and eax, dword [esp + 0x18]
or eax, edi
je 0x10052da7
mov eax, dword [esp + 4]
mov edx, ebx
add eax, ebx
mov dword [esp + 0x10], eax
mov edi, dword [esp]
mov eax, dword [esp + 8]
xor ecx, ecx
mov ebx, edx
sub edi, edx
lea ebx, [eax + edx]
cmovb edi, ecx
cmp dword [esp + 0x8c], ecx
je 0x10052e4e
cmp edi, ecx
je 0x10052f2b
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ecx]
cmp al, byte [ebx + ecx]
lea ecx, [ecx + 1]
je 0x10052e08
mov ecx, dword [esp + 0x10]
lea edi, [esp + 0x48]
sub ecx, dword [esp + 0x94]
mov dword [esp + 0x10], ecx
sub ecx, dword [esp + 4]
cmp ecx, dword [esp]
jb 0x10052d75
jmp 0x100523dd
lea edi, [esp + 0x48]
mov eax, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x88]
test edx, edx
je 0x10052e76
cmp edx, ecx
jae 0x10052e7a
cmp byte [eax + edx], 0xc0
jl 0x10052f33
mov ecx, edx
jmp 0x10052e80
xor ecx, ecx
jmp 0x10052e80
jne 0x10052f33
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x48], 0x101e3618
mov dword [esp + 0x4c], 1
mov dword [esp + 0x58], 0
mov dword [esp + 0x38], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], 0x1003ef20
mov dword [esp + 0x54], 1
push edi
call fcn.1005f950
add esp, 4
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x34], 0
mov dword [esp], eax
mov eax, dword [esp + 0x24]
je 0x10052446
mov esi, eax
mov eax, dword [0x1035648c]
push dword [esp + 0xa0]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, esi
jmp 0x10052446
call fcn.1001a7a0
jmp 0x10052f5a
push 0x101e0dd0
push 0x101e0f20
lea eax, [esp + 0x50]
push eax
push 0x37
push 0x101e0d4c
call fcn.10026bb0
add esp, 0x14
jmp 0x10052f5a
call fcn.1001a7a0
jmp 0x10052f5a
mov eax, dword [esp]
jmp 0x10052c99
mov edi, ecx
mov esi, edx
mov ecx, 0x101e35ec
mov dword [esp + 8], eax
mov dword [esp], edi
push ecx
push esi
push 0
push dword [esp + 0xc]
push dword [esp + 0x18]
mov ebx, dword [ebp + 8]
call fcn.1002b1a0
add esp, 0x14
ud2
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 4]
jmp 0x10052cae