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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
mov eax, dword [0x101aeb60]
xor eax, esp
mov dword [esp + 0xb8], eax
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 8]
push ebx
movsx eax, byte [edx]
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], esi
test eax, eax
je case.default.0x10047386
mov dword [esp + 0x6c], 0x1018ab18
mov dword [esp + 0x68], 6
mov dword [esp + 0x74], 0x80000000
mov dword [esp + 0x58], 0x15e
mov dword [esp + 0x60], 0x64
movsd xmm4, qword [0x10195230]
cmp eax, 0x25
je 0x100471a5
xor eax, eax
inc eax
mov edi, edx
inc edx
mov dword [esp + 0x20], edx
movsx esi, byte [edx]
cmp esi, 0x25
je 0x10047184
test esi, esi
je 0x10047180
inc eax
inc edx
movsx esi, byte [edx]
cmp esi, 0x25
jne 0x10047172
mov dword [esp + 0x20], edx
push eax
mov edx, edi
call fcn.10047d4b
pop ecx
test esi, esi
je case.default.0x10047386
movsd xmm4, qword [0x10195230]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
inc edx
movsx ecx, byte [edx]
test ecx, ecx
je 0x10047ce2
xor al, al
mov byte [esp + 0x2a], al
xor eax, eax
mov byte [esp + 0x18], al
mov byte [esp + 0x1a], al
mov byte [esp + 0x17], al
mov byte [esp + 0x2b], al
mov byte [esp + 0x19], al
mov eax, ecx
sub eax, 0x20
je 0x1004720c
dec eax
je 0x10047205
dec eax
dec eax
je 0x100471fe
sub eax, 8
je 0x100471f7
dec eax
dec eax
je 0x100471f0
sub eax, 3
jne 0x10047219
mov byte [esp + 0x2a], 1
jmp 0x10047211
mov byte [esp + 0x19], 1
jmp 0x10047211
mov byte [esp + 0x2b], 1
jmp 0x10047211
mov byte [esp + 0x1a], 1
jmp 0x10047211
mov byte [esp + 0x18], 1
jmp 0x10047211
mov byte [esp + 0x17], 1
inc edx
movsx ecx, byte [edx]
test ecx, ecx
jne 0x100471cd
xor eax, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
cmp ecx, 0x2a
jne 0x1004724a
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
test eax, eax
jns 0x10047244
neg eax
mov byte [esp + 0x19], 1
mov dword [esp + 0x1c], eax
inc edx
movsx ecx, byte [edx]
jmp 0x10047269
cmp ecx, 0x30
jl 0x1004726d
cmp ecx, 0x39
jg 0x10047265
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc edx
movsx ecx, byte [edx]
cmp ecx, 0x30
jge 0x1004724f
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
cmp ecx, 0x2e
jne 0x100472d4
mov eax, dword [esp + 0x20]
xor edx, edx
inc eax
mov dword [esp + 0x2c], edx
movsx ecx, byte [eax]
mov dword [esp + 0x20], eax
cmp ecx, 0x2a
jne 0x100472ae
mov edx, dword [esi]
add esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], edx
test edx, edx
jns 0x100472a0
neg edx
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0x20]
inc esi
mov dword [esp + 0x20], esi
movsx ecx, byte [esi]
jmp 0x100472df
mov esi, dword [esp + 0x20]
jmp 0x100472cd
cmp ecx, 0x39
jg 0x100472df
imul edx, edx, 0xa
add ecx, 0xffffffd0
add edx, ecx
inc esi
mov dword [esp + 0x2c], edx
movsx ecx, byte [esi]
mov dword [esp + 0x20], esi
cmp ecx, 0x30
jge 0x100472b4
jmp 0x100472df
mov esi, dword [esp + 0x20]
or edx, 0xffffffff
mov dword [esp + 0x2c], edx
cmp ecx, 0x6c
jne 0x1004730d
inc esi
mov al, 1
movsx ecx, byte [esi]
mov byte [esp + 0x1b], al
mov dword [esp + 0x20], esi
cmp ecx, 0x6c
jne 0x10047305
inc esi
mov byte [esp + 0xe], al
movsx ecx, byte [esi]
mov dword [esp + 0x20], esi
jmp 0x10047317
xor al, al
mov byte [esp + 0xe], al
jmp 0x10047317
xor al, al
mov byte [esp + 0xe], al
mov byte [esp + 0x1b], al
mov esi, dword [esp + 0x6c]
xor eax, eax
mov dword [esp + 0x44], esi
mov byte [esp + 0xf], 0
mov dword [esp + 0x24], eax
movsx eax, byte [esi]
cmp ecx, eax
je 0x1004734b
add esi, dword [esp + 0x68]
inc dword [esp + 0x24]
cmp esi, 0x1018aba2
jl 0x1004732a
mov cl, byte [esp + 0xf]
mov esi, dword [esp + 0x44]
jmp 0x10047374
mov esi, dword [esp + 0x24]
imul esi, esi, 6
add esi, 0x1018ab18
cmp dword [esp + 0x70], 0
mov dword [esp + 0x44], esi
jne 0x1004736d
test byte [esi + 2], 2
jne case.default.0x10047386
mov cl, byte [esi + 3]
mov byte [esp + 0xf], cl
and dword [esp + 0x54], 0
movzx eax, cl
dec eax
cmp eax, 0xf
ja case.default.0x10047386
jmp dword [eax*4 + 0x10047d0b]
xor al, al
mov cl, 1
jmp 0x1004739b
mov al, byte [esp + 0xe]
mov cl, byte [esp + 0x1b]
test byte [esi + 2], 1
je 0x10047414
test al, al
je 0x100473b8
mov ecx, dword [esp + 0x10]
add ecx, 8
mov dword [esp + 0x10], ecx
mov eax, dword [ecx - 8]
mov esi, dword [ecx - 4]
jmp 0x100473c9
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov eax, dword [esi - 4]
cdq
mov esi, edx
test esi, esi
jg 0x100473f6
jl 0x100473d3
test eax, eax
jae 0x100473f6
test eax, eax
jne 0x100473e7
mov ecx, dword [esp + 0x74]
cmp esi, ecx
jne 0x100473e7
and dword [esp + 0x38], eax
mov esi, ecx
jmp 0x100473f2
neg eax
adc esi, 0
mov dword [esp + 0x38], eax
neg esi
mov cl, 0x2d
jmp 0x10047441
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x38], eax
je 0x10047405
mov cl, 0x2b
jmp 0x10047441
cmp byte [esp + 0x17], 0
sete cl
dec cl
and cl, 0x20
jmp 0x10047441
test al, al
je 0x1004742b
mov edx, dword [esp + 0x10]
add edx, 8
mov dword [esp + 0x10], edx
mov eax, dword [edx - 8]
mov esi, dword [edx - 4]
jmp 0x1004743b
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov eax, dword [esi - 4]
xor esi, esi
mov dword [esp + 0x38], eax
xor cl, cl
mov edx, dword [esp + 0x38]
mov eax, edx
or eax, esi
mov byte [esp + 0xe], cl
jne 0x10047453
mov byte [esp + 0x1a], al
mov al, byte [esp + 0x2a]
test al, al
je 0x10047477
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x1c]
setne al
sub ecx, eax
mov eax, dword [esp + 0x2c]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x2c], eax
jmp 0x1004747b
mov eax, dword [esp + 0x2c]
cmp eax, 0x3c
jge 0x10047491
push 0x46
pop edi
lea eax, [esp + 0x78]
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], eax
jmp 0x100474b5
lea edi, [eax + 0xa]
push edi
mov dword [esp + 0x68], edi
call fcn.10046a8f
pop ecx
mov ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], eax
test ecx, ecx
je 0x10047cd8
mov edx, dword [esp + 0x38]
dec edi
add edi, eax
cmp byte [esp + 0xf], 0x10
jne 0x1004750b
push 0
push 0xa
pop eax
push eax
push esi
push edx
call fcn.100b94f0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], ebx
cmp ecx, 4
jge 0x100474ed
push 0
push 0xa
push edx
push eax
call fcn.1013c3b0
cmp eax, 1
jne 0x100474f1
test edx, edx
jne 0x100474f1
xor ecx, ecx
jmp 0x100474f5
mov ecx, dword [esp + 0x34]
mov al, byte [ecx*2 + 0x1018a3dd]
mov byte [edi - 1], al
mov al, byte [ecx*2 + 0x1018a3dc]
sub edi, 2
mov byte [edi], al
mov ecx, dword [esp + 0x44]
movzx eax, byte [ecx + 4]
add eax, 0x1018d18c
mov dword [esp + 0x48], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edx
push edx
push ecx
push esi
push eax
dec edi
call fcn.100b94f0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov esi, edx
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
mov byte [edi], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], ebx
test esi, esi
ja 0x1004752f
jb 0x10047562
test eax, eax
jne 0x1004752f
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x64]
sub eax, edx
sub eax, esi
inc eax
add eax, edi
jmp 0x1004757c
dec edi
dec eax
mov byte [edi], 0x30
test eax, eax
jg 0x10047577
mov al, byte [esp + 0xe]
test al, al
je 0x1004758b
dec edi
mov byte [edi], al
cmp byte [esp + 0x1a], 0
je 0x100475b1
mov eax, dword [esp + 0x44]
mov al, byte [eax + 5]
test al, al
je 0x100475b1
movzx eax, al
add eax, 0x1018d104
jmp 0x100475ab
dec edi
inc eax
mov byte [edi], cl
mov cl, byte [eax]
test cl, cl
jne 0x100475a7
sub edx, edi
dec esi
add esi, edx
mov eax, dword [esp + 0x1c]
cmp byte [esp + 0x19], 0
jne 0x100475d2
mov edx, eax
sub edx, esi
test edx, edx
jle 0x100475d2
mov ecx, dword [esp + 0x30]
call fcn.100470aa
test esi, esi
jle 0x100475e3
mov ecx, dword [esp + 0x30]
push esi
mov edx, edi
call fcn.10047d4b
pop ecx
cmp byte [esp + 0x19], 0
je 0x100475ff
mov eax, dword [esp + 0x1c]
sub eax, esi
test eax, eax
jle 0x100475ff
mov ecx, dword [esp + 0x30]
mov edx, eax
call fcn.100470aa
push dword [esp + 0x54]
call fcn.10046c90
mov edx, dword [esp + 0x24]
inc edx
pop ecx
movsx eax, byte [edx]
test eax, eax
je case.default.0x10047386
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
jmp 0x10047153
mov esi, dword [esp + 0x10]
add esi, 8
test edx, edx
movsd xmm1, qword [esi - 8]
cmovs edx, dword [esp + 0x68]
xorps xmm2, xmm2
comisd xmm2, xmm1
mov dword [esp + 0x10], esi
movsd qword [esp + 0x48], xmm1
mov dword [esp + 0x2c], edx
jbe 0x10047665
xorpd xmm1, xmmword [0x10195340]
movsd qword [esp + 0x48], xmm1
mov byte [esp + 0xe], 0x2d
jmp 0x10047683
cmp byte [esp + 0x2b], 0
je 0x10047673
mov byte [esp + 0xe], 0x2b
jmp 0x10047683
cmp byte [esp + 0x17], 0
sete al
dec al
and al, 0x20
mov byte [esp + 0xe], al
cmp cl, 4
jne 0x10047691
test edx, edx
jle 0x10047691
dec edx
mov dword [esp + 0x2c], edx
movsd xmm3, qword [0x10195200]
mov eax, edx
test edx, edx
jle 0x100476ac
mulsd xmm3, qword [0x101951f8]
dec eax
test eax, eax
jg 0x1004769f
cmp cl, 2
jne 0x100476c3
movapd xmm0, xmm3
addsd xmm0, xmm1
movapd xmm1, xmm0
movsd qword [esp + 0x48], xmm1
xor ecx, ecx
movapd xmm0, xmm1
mov dword [esp + 0x38], ecx
call fcn.1004881c
test eax, eax
je 0x100476e3
push 3
mov edi, 0x101905c8
pop esi
jmp 0x100475b6
comisd xmm1, xmm2
jbe 0x10047830
comisd xmm1, xmmword [0x101952f0]
movsd xmm5, qword [0x10195208]
mov eax, dword [esp + 0x58]
movapd xmm2, xmm5
jb 0x1004772f
mov esi, dword [esp + 0x60]
cmp ecx, eax
jg 0x1004772b
mulsd xmm2, qword [0x101952f0]
add ecx, esi
movapd xmm0, xmm2
mulsd xmm0, qword [0x101952f0]
comisd xmm1, xmm0
jae 0x1004770b
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, qword [0x101952d8]
comisd xmm1, xmm0
jb 0x1004775e
cmp ecx, eax
jg 0x1004775a
movapd xmm2, xmm0
mulsd xmm0, qword [0x101952d8]
add ecx, 0x40
comisd xmm1, xmm0
jae 0x10047741
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, qword [0x101952b0]
comisd xmm1, xmm0
jb 0x1004778d
cmp ecx, eax
jg 0x10047789
movapd xmm2, xmm0
mulsd xmm0, qword [0x101952b0]
add ecx, 8
comisd xmm1, xmm0
jae 0x10047770
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x100477b2
cmp ecx, eax
jg 0x100477ae
movapd xmm2, xmm0
mulsd xmm0, xmm4
inc ecx
comisd xmm1, xmm0
jae 0x1004779b
mov dword [esp + 0x38], ecx
divsd xmm1, xmm2
movsd xmm0, qword [0x101951e8]
comisd xmm0, xmm1
movsd qword [esp + 0x48], xmm1
jbe 0x100477e5
mulsd xmm1, qword [0x101952b0]
sub ecx, 8
comisd xmm0, xmm1
ja 0x100477ca
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x48], xmm1
comisd xmm5, xmm1
jbe 0x10047800
mulsd xmm1, xmm4
dec ecx
comisd xmm5, xmm1
ja 0x100477eb
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x48], xmm1
cmp ecx, eax
jle 0x10047830
mov al, byte [esp + 0xe]
cmp al, 0x2d
jne 0x10047813
mov edi, 0x101905c0
jmp 0x10047822
mov edi, 0x101905d0
mov ecx, 0x101905cc
cmp al, 0x2b
cmovne edi, ecx
mov ecx, edi
call fcn.1004884a
mov esi, eax
jmp 0x100475b6
mov al, byte [esp + 0xf]
lea esi, [esp + 0x78]
cmp al, 2
je 0x1004785f
addsd xmm1, xmm3
comisd xmm1, xmm4
movsd qword [esp + 0x48], xmm1
jb 0x1004785f
mulsd xmm1, qword [0x101951f8]
inc ecx
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x48], xmm1
cmp al, 4
jne 0x1004788a
cmp byte [esp + 0x1a], 0
sete byte [esp + 0x1b]
cmp ecx, 0xfffffffc
jl 0x10047883
cmp ecx, edx
jg 0x10047883
sub edx, ecx
mov dword [esp + 0x2c], edx
mov byte [esp + 0xf], 2
jmp 0x10047898
mov byte [esp + 0xf], 3
jmp 0x10047896
mov ah, byte [esp + 0x18]
mov byte [esp + 0x1b], ah
cmp al, 3
jne 0x10047898
xor ecx, ecx
lea eax, [ecx + edx]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
cmp eax, 0x37
jle 0x100478c8
add eax, 0xf
push eax
call fcn.10046a8f
pop ecx
mov dword [esp + 0x54], eax
mov esi, eax
test eax, eax
je 0x10047cd8
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
movzx eax, byte [esp + 0x18]
imul eax, eax, 0xa
add eax, 0x10
mov dword [esp + 0x34], eax
mov ah, byte [esp + 0xe]
test edx, edx
setg al
or al, byte [esp + 0x18]
mov edi, esi
or al, byte [esp + 0x1a]
mov byte [esp + 0x17], al
test ah, ah
je 0x100478f5
mov byte [esi], ah
inc esi
test ecx, ecx
jns 0x100478ff
mov byte [esi], 0x30
inc esi
jmp 0x10047944
movsd xmm1, qword [esp + 0x48]
mov edx, dword [esp + 0x34]
test edx, edx
jg 0x10047911
mov al, 0x30
jmp 0x1004792c
cvttsd2si eax, xmm1
dec edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
add al, 0x30
subsd xmm1, xmm0
mulsd xmm1, qword [0x10195230]
mov byte [esi], al
inc esi
dec ecx
jns 0x10047909
mov al, byte [esp + 0x17]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
movsd qword [esp + 0x48], xmm1
test al, al
je 0x1004794c
mov byte [esi], 0x2e
inc esi
inc ecx
jns 0x1004796d
neg ecx
push ecx
push 0x30
push esi
mov dword [esp + 0x30], ecx
call fcn.100a56b0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
add esp, 0xc
add esi, eax
sub edx, eax
test edx, edx
jle 0x100479ac
mov ecx, dword [esp + 0x34]
dec edx
test ecx, ecx
jg 0x1004797e
mov al, 0x30
jmp 0x100479a5
movsd xmm1, qword [esp + 0x48]
cvttsd2si eax, xmm1
dec ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
add al, 0x30
subsd xmm1, xmm0
mulsd xmm1, qword [0x10195230]
movsd qword [esp + 0x48], xmm1
mov byte [esi], al
inc esi
test edx, edx
jg 0x10047975
cmp byte [esp + 0x1b], 0
je 0x100479e0
cmp byte [esp + 0x17], 0
je 0x100479e0
jmp 0x100479c1
mov esi, eax
mov byte [esi], 0
lea eax, [esi - 1]
cmp byte [eax], 0x30
je 0x100479bc
cmp byte [esi - 1], 0x2e
jne 0x100479e0
cmp byte [esp + 0x18], 0
je 0x100479dc
mov byte [esi], 0x30
inc esi
jmp 0x100479e0
dec esi
mov byte [esi], 0
cmp byte [esp + 0xf], 3
jne 0x10047a38
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
movzx eax, byte [eax + 4]
mov al, byte [eax + 0x1018d18c]
mov byte [esi], al
test edx, edx
jns 0x10047a0a
mov byte [esi + 1], 0x2d
add esi, 2
neg edx
jmp 0x10047a11
mov byte [esi + 1], 0x2b
add esi, 2
mov ecx, dword [esp + 0x60]
cmp edx, ecx
jl 0x10047a23
mov eax, edx
cdq
idiv ecx
add al, 0x30
mov byte [esi], al
inc esi
mov eax, edx
cdq
push 0xa
pop ecx
idiv ecx
add al, 0x30
add dl, 0x30
mov byte [esi], al
mov byte [esi + 1], dl
add esi, 2
mov al, byte [esp + 0x2a]
mov byte [esi], 0
sub esi, edi
test al, al
je 0x100475b6
cmp byte [esp + 0x19], 0
jne 0x100475d2
mov eax, dword [esp + 0x1c]
cmp esi, eax
jge 0x100475c1
mov ecx, eax
sub ecx, esi
mov edx, eax
cmp eax, ecx
jl 0x10047a79
mov esi, edi
sub esi, ecx
mov al, byte [esi + edx]
mov byte [edx + edi], al
dec edx
cmp edx, ecx
jge 0x10047a6e
xor eax, eax
cmp byte [esp + 0xe], al
setne al
test ecx, ecx
je 0x10047a94
push ecx
add eax, edi
push 0x30
push eax
call fcn.100a56b0
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov esi, eax
jmp 0x100475ba
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov ecx, dword [esi]
mov eax, dword [eax + 0xc]
add esi, 4
mov dword [esp + 0x10], esi
mov dword [ecx], eax
xor eax, eax
mov dword [esp + 0x1c], eax
xor esi, esi
jmp 0x100475ba
xor esi, esi
mov byte [esp + 0x78], 0x25
lea edi, [esp + 0x78]
inc esi
jmp 0x100475b6
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov ecx, dword [esi - 4]
mov byte [esp + 0x78], cl
test edx, edx
js 0x10047b0b
cmp edx, 1
jle 0x10047b07
lea eax, [edx - 1]
push eax
push ecx
lea eax, [esp + 0x81]
push eax
call fcn.100a56b0
mov edx, dword [esp + 0x38]
add esp, 0xc
mov esi, edx
jmp 0x10047b0e
xor esi, esi
inc esi
lea edi, [esp + 0x78]
jmp 0x100475b6
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov edi, dword [esi - 4]
test edi, edi
jne 0x10047b30
mov edi, 0x1017bf8f
jmp 0x10047b3e
mov eax, dword [esp + 0x54]
cmp cl, 7
cmove eax, edi
mov dword [esp + 0x54], eax
test edx, edx
js 0x10047822
xor esi, esi
test edx, edx
jle 0x100475b6
cmp byte [esi + edi], 0
je 0x100475b6
inc esi
cmp esi, edx
jl 0x10047b50
jmp 0x100475b6
push 0x27
pop eax
cmp cl, 0xf
push 0x22
pop esi
cmove eax, esi
mov esi, dword [esp + 0x10]
add esi, 4
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esi - 4]
test eax, eax
sete cl
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x10047bab
cmp byte [esp + 0xf], 0xb
mov eax, 0x101905e0
mov esi, 0x101905d8
cmovne eax, esi
mov dword [esp + 0x44], eax
xor esi, esi
xor edi, edi
mov dword [esp + 0x34], esi
test edx, edx
je 0x10047bd5
mov ecx, dword [esp + 0x44]
mov al, byte [esi + ecx]
test al, al
je 0x10047bcd
cmp al, byte [esp + 0x24]
jne 0x10047bc9
inc edi
inc esi
dec edx
jne 0x10047bbb
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x34], esi
test ecx, ecx
jne 0x10047be5
cmp byte [esp + 0xf], 0xb
jne 0x10047be5
xor edx, edx
inc edx
jmp 0x10047be7
xor edx, edx
lea eax, [edx*2 + 1]
add eax, esi
add eax, edi
mov dword [esp + 0x38], edx
cmp eax, 0x46
jle 0x10047c16
push eax
call fcn.10046a8f
pop ecx
mov dword [esp + 0x54], eax
mov edi, eax
test eax, eax
je 0x10047cd8
mov edx, dword [esp + 0x38]
jmp 0x10047c1a
lea edi, [esp + 0x78]
xor esi, esi
test edx, edx
je 0x10047c27
mov eax, dword [esp + 0x24]
mov byte [edi], al
inc esi
xor eax, eax
cmp dword [esp + 0x34], eax
jle 0x10047c51
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
mov cl, byte [eax + ecx]
mov byte [esi + edi], cl
inc esi
cmp cl, byte [esp + 0x24]
jne 0x10047c48
mov byte [esi + edi], cl
inc esi
inc eax
cmp eax, edx
jl 0x10047c33
mov edx, dword [esp + 0x38]
test edx, edx
je 0x10047c5d
mov eax, dword [esp + 0x24]
mov byte [esi + edi], al
inc esi
mov byte [esi + edi], 0
jmp 0x100475b6
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov edx, dword [esi - 4]
test edx, edx
je 0x10047ab5
push dword [edx + 4]
mov edx, dword [edx]
mov ecx, dword [esp + 0x34]
call fcn.10047d4b
pop ecx
jmp 0x10047ab5
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
add esi, 8
mov dword [esp + 0x10], esi
mov esi, dword [esi - 4]
imul esi, esi, 0x48
mov dword [esp + 0x48], eax
mov edx, dword [esi + eax + 0xc]
test edx, edx
je 0x10047cd0
mov ecx, dword [esp + 0x30]
push 0xffffffffffffffff
call fcn.10047d4b
pop ecx
mov ecx, dword [esp + 0x30]
push 1
mov edx, 0x1018f508
call fcn.10047d4b
mov eax, dword [esp + 0x4c]
pop ecx
mov edx, dword [esi + eax + 0x10]
push 0xffffffffffffffff
jmp 0x10047c81
mov eax, dword [esp + 0x30]
mov byte [eax + 0x18], 1
jmp case.default.0x10047386
mov ecx, dword [esp + 0x30]
push 1
mov edx, 0x10190598
call fcn.10047d4b
pop ecx
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100a3ae5
mov esp, ebp
pop ebp
ret