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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x128
mov eax, dword [0x577094]
xor eax, esp
mov dword [esp + 0x124], eax
mov ecx, dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], edx
mov dl, byte [ecx + 0x15]
push esi
and dl, 2
mov dword [esp + 0x2c], ecx
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x78], 0
mov byte [esp + 0x23], dl
je 0x41d29d
mov edx, dword [eax]
mov dword [esp + 0x54], edx
cmp byte [esp + 0x23], 0
lea edx, [eax + 4]
cmove edx, eax
movsx eax, byte [edi]
mov dword [esp + 0x1c], edx
test eax, eax
je case.default.0x41d7ad
movsd xmm0, qword [0x56c450]
lea esi, [ecx + 8]
movsd qword [esp + 0x90], xmm0
lea edx, [ecx + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x24], esi
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [0x56c280]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [0x56c278]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [0x56c2a0]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [0x56c368]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [0x56c338]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x56c2b0]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [0x56c288]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [0x56c318]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [0x56c290]
movsd qword [esp + 0xd8], xmm0
cmp eax, 0x25
je 0x41d404
mov esi, edi
mov dword [esp + 0x28], esi
mov al, byte [edi + 1]
inc edi
test al, al
je 0x41d392
cmp al, 0x25
jne 0x41d386
mov eax, edi
lea edx, [ecx + 0x10]
mov ecx, dword [esp + 0x30]
sub eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x38], eax
lea eax, [ecx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
cmp eax, dword [ecx + 8]
jb 0x41d3cf
push dword [esp + 0x4c]
mov edx, esi
call fcn.0041f0f0
add esp, 4
jmp 0x41d3f7
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x41d3fb
mov ecx, dword [esp + 0x38]
mov dword [edx], ecx
mov ecx, dword [esp + 0x30]
push eax
push esi
mov eax, dword [ecx + 4]
sub eax, dword [esp + 0x54]
add eax, dword [esp + 0x40]
push eax
call fcn.004f0e30
add esp, 0xc
mov edx, dword [esp + 0x14]
cmp byte [edi], 0
je case.default.0x41d7ad
movsx ecx, byte [edi + 1]
inc edi
mov dword [esp + 0x50], edi
test ecx, ecx
je 0x41edb3
xor al, al
mov dword [esp + 0x40], 0
or esi, 0xffffffff
mov byte [esp + 0x4b], al
mov byte [esp + 0x2d], al
mov byte [esp + 0x2f], al
mov byte [esp + 0x2e], al
mov byte [esp + 0x22], al
mov byte [esp + 0x13], al
mov byte [esp + 0x1b], al
mov byte [esp + 0x4a], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], esi
nop word [eax + eax]
lea edx, [eax]
lea eax, [ecx - 0x20]
cmp eax, 0x4c
ja case.0x41d465.34
movzx eax, byte [eax + 0x41ee38]
jmp dword [eax*4 + 0x41ee08]
mov byte [esp + 0x13], 1
jmp 0x41d70c
mov byte [esp + 0x22], 0x2b
jmp 0x41d70c
mov byte [esp + 0x22], 0x20
jmp 0x41d70c
mov byte [esp + 0x2f], 1
jmp 0x41d70c
mov byte [esp + 0x2d], 1
jmp 0x41d70c
mov byte [esp + 0x4b], 1
jmp 0x41d70c
mov byte [esp + 0x2e], 0x2c
jmp 0x41d70c
inc edi
lea eax, [ecx - 0x30]
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edi
movsx ecx, byte [edi]
cmp ecx, 0x30
jl 0x41d4ef
mov esi, eax
cmp ecx, 0x39
ja 0x41d4df
lea esi, [esi + esi*4]
inc edi
lea esi, [esi - 0x18]
lea esi, [ecx + esi*2]
movsx ecx, byte [edi]
cmp ecx, 0x30
jge 0x41d4c8
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], edi
and eax, 0x7fffffff
mov dword [esp + 0x40], eax
cmp ecx, 0x2e
je 0x41d70b
jmp 0x41d706
cmp byte [esp + 0x23], 0
je 0x41d59b
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x41d52f
mov ecx, dword [esp + 0x1c]
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x60]
jmp 0x41d5a4
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], eax
movzx eax, word [ecx + 8]
test al, 0x24
je 0x41d556
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], edx
jmp 0x41d5a4
test al, 8
je 0x41d56d
movsd xmm0, qword [ecx]
call fcn.00441900
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], edx
jmp 0x41d5a4
test al, 0x12
je 0x41d580
call fcn.00441930
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], edx
jmp 0x41d5a4
mov ecx, dword [esp + 0x1c]
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x64], edx
jmp 0x41d5a4
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx]
add ecx, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], ecx
test eax, eax
jns 0x41d5c9
mov dh, 1
cmp eax, 0x80000001
jl 0x41d5c1
neg eax
mov dword [esp + 0x40], eax
jmp 0x41d5cd
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x41d5cd
mov dh, byte [esp + 0x13]
mov dl, byte [edi + 1]
lea ecx, [edi + 1]
mov dword [esp + 0x58], ecx
mov byte [esp + 0x13], dh
movsx ecx, dl
cmp dl, 0x2e
je 0x41d5f0
cmp dl, 0x6c
je 0x41d5f0
mov edi, dword [esp + 0x58]
mov dl, 1
jmp 0x41d5f4
mov dl, byte [esp + 0x1b]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
mov byte [esp + 0x1b], dl
mov dword [esp + 0x44], esi
test dl, dl
jne case.0x41d465.34
jmp 0x41d710
movsx ecx, byte [edi + 1]
inc edi
mov dword [esp + 0x50], edi
cmp ecx, 0x2a
jne 0x41d6da
cmp byte [esp + 0x23], 0
je 0x41d6a0
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x41d644
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov esi, dword [esp + 0x60]
jmp 0x41d6a7
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
movzx eax, word [ecx + 8]
test al, 0x24
je 0x41d663
mov edx, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [esp + 0x64], edx
jmp 0x41d6a7
test al, 8
je 0x41d678
movsd xmm0, qword [ecx]
call fcn.00441900
mov esi, eax
mov dword [esp + 0x64], edx
jmp 0x41d6a7
test al, 0x12
je 0x41d689
call fcn.00441930
mov esi, eax
mov dword [esp + 0x64], edx
jmp 0x41d6a7
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x64], edx
jmp 0x41d6a7
add dword [esp + 0x1c], 4
mov esi, dword [edx]
mov dword [esp + 0x44], esi
test esi, esi
jns 0x41d6cf
cmp esi, 0x80000001
jl 0x41d6c8
movsx ecx, byte [edi + 1]
neg esi
inc edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], edi
jmp 0x41d706
or esi, 0xffffffff
mov dword [esp + 0x44], esi
movsx ecx, byte [edi + 1]
inc edi
mov dword [esp + 0x50], edi
jmp 0x41d706
xor esi, esi
cmp ecx, 0x30
jl 0x41d6fc
cmp ecx, 0x39
ja 0x41d6f8
lea esi, [esi + esi*4]
inc edi
lea esi, [esi - 0x18]
lea esi, [ecx + esi*2]
movsx ecx, byte [edi]
cmp ecx, 0x30
jge 0x41d6e1
mov dword [esp + 0x50], edi
and esi, 0x7fffffff
mov dword [esp + 0x44], esi
cmp ecx, 0x6c
jne case.0x41d465.34
dec edi
mov eax, dword [esp + 0x1c]
movsx ecx, byte [edi + 1]
inc edi
mov dword [esp + 0x50], edi
test ecx, ecx
jne 0x41d450
jmp case.0x41d465.34
movsx ecx, byte [edi + 1]
inc edi
mov byte [esp + 0x4a], 1
mov dword [esp + 0x50], edi
cmp ecx, 0x6c
jne case.0x41d465.34
movsx ecx, byte [edi + 1]
inc edi
mov dword [esp + 0x50], edi
mov byte [esp + 0x4a], 2
mov eax, dword [esp + 0x1c]
mov edx, 0x5648b0
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x4c], 0x5648b0
mov byte [esp + 0x1b], 0x11
mov dword [esp + 0x38], eax
movsx eax, byte [edx]
cmp ecx, eax
je 0x41d784
inc dword [esp + 0x38]
add edx, 6
cmp edx, 0x56493a
jl 0x41d764
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x4c]
jmp 0x41d7a1
mov eax, dword [esp + 0x38]
lea eax, [eax + eax*2]
mov cl, byte [eax*2 + 0x5648b3]
lea edx, [eax*2 + 0x5648b0]
mov dword [esp + 0x4c], edx
mov byte [esp + 0x1b], cl
movzx eax, cl
cmp eax, 0x10
ja case.default.0x41d7ad
jmp dword [eax*4 + 0x41ee88]
mov byte [esp + 0x4a], 1
mov byte [esp + 0x2e], 0
test byte [edx + 2], 1
je 0x41d8e5
cmp byte [esp + 0x23], 0
je 0x41d87c
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x41d800
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dl, byte [esp + 0x22]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ecx
jmp 0x41d9ae
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], eax
movzx eax, word [ecx + 8]
test al, 0x24
je 0x41d82f
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
jmp 0x41d8a2
test al, 8
je 0x41d848
movsd xmm0, qword [ecx]
call fcn.00441900
mov dword [esp + 0x24], edx
mov ecx, edx
mov dword [esp + 0x14], eax
jmp 0x41d8a2
test al, 0x12
je 0x41d85d
call fcn.00441930
mov dword [esp + 0x24], edx
mov ecx, edx
mov dword [esp + 0x14], eax
jmp 0x41d8a2
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], eax
jmp 0x41d8a2
mov al, byte [esp + 0x4a]
mov edx, dword [esp + 0x14]
test al, al
je 0x41d898
cmp al, 2
mov eax, dword [edx]
jne 0x41d89a
add dword [esp + 0x1c], 8
mov ecx, dword [edx + 4]
jmp 0x41d8a2
mov eax, dword [edx]
add dword [esp + 0x1c], 4
cdq
mov ecx, edx
test ecx, ecx
jg 0x41d7ef
jl 0x41d8b4
test eax, eax
jae 0x41d7ef
test eax, eax
jne 0x41d8cf
cmp ecx, 0x80000000
jne 0x41d8cf
mov dword [esp + 0x24], ecx
mov dl, 0x2d
mov dword [esp + 0x14], eax
jmp 0x41d9aa
neg eax
mov dl, 0x2d
mov dword [esp + 0x14], eax
adc ecx, 0
neg ecx
mov dword [esp + 0x24], ecx
jmp 0x41d9aa
cmp byte [esp + 0x23], 0
je 0x41d977
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jle 0x41d958
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], eax
movzx eax, word [ecx + 8]
test al, 0x24
je 0x41d92a
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
jmp 0x41d9a8
test al, 8
je 0x41d943
movsd xmm0, qword [ecx]
call fcn.00441900
mov dword [esp + 0x24], edx
mov ecx, edx
mov dword [esp + 0x14], eax
jmp 0x41d9a8
test al, 0x12
je 0x41d958
call fcn.00441930
mov dword [esp + 0x24], edx
mov ecx, edx
mov dword [esp + 0x14], eax
jmp 0x41d9a8
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], eax
jmp 0x41d9a8
mov al, byte [esp + 0x4a]
mov edx, dword [esp + 0x14]
test al, al
je 0x41d997
cmp al, 2
mov eax, dword [edx]
mov dword [esp + 0x14], eax
jne 0x41d99d
add dword [esp + 0x1c], 8
mov ecx, dword [edx + 4]
jmp 0x41d9a4
mov eax, dword [edx]
mov dword [esp + 0x14], eax
add dword [esp + 0x1c], 4
xor ecx, ecx
mov dword [esp + 0x24], ecx
xor dl, dl
mov byte [esp + 0x22], dl
or eax, ecx
jne 0x41d9b6
mov byte [esp + 0x2f], al
cmp byte [esp + 0x4b], 0
je 0x41d9d3
mov ecx, dword [esp + 0x40]
xor eax, eax
test dl, dl
setne al
sub ecx, eax
cmp esi, ecx
cmovl esi, ecx
mov dword [esp + 0x44], esi
cmp esi, 0x25
jge 0x41d9ee
mov eax, 0x46
lea ecx, [esp + 0xe0]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], ecx
jmp 0x41da41
mov eax, esi
cdq
add eax, 0xa
mov ecx, edx
mov dword [esp + 0x3c], eax
adc ecx, 0
cmp byte [esp + 0x2e], 0
je 0x41da1d
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
adc ecx, edx
push ecx
mov ecx, dword [esp + 0x34]
push eax
call fcn.0041d1b0
add esp, 8
mov dword [esp + 0x78], eax
mov ecx, eax
mov dword [esp + 0x34], ecx
test eax, eax
je case.default.0x41d7ad
mov eax, dword [esp + 0x3c]
dec eax
add eax, ecx
cmp byte [esp + 0x1b], 0xf
mov dword [esp + 0x28], eax
jne 0x41db0c
mov eax, dword [esp + 0x14]
mov edx, 0xcccccccd
mov ecx, 0xcccccccd
lea edi, [edx - 1]
mul edx
mov dword [esp + 0x60], eax
mov esi, edx
mov eax, dword [esp + 0x14]
mul edi
mov edi, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x24]
mul ecx
mov ecx, eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x24]
mov edx, 0xcccccccc
mul edx
add ecx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x58]
adc edx, 0
mov dword [esp + 0x70], eax
add edi, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x70]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x60]
adc eax, eax
add edi, edx
adc ecx, eax
shrd edi, ecx, 3
shr ecx, 3
lea eax, [edi + edi*4]
add eax, eax
sub esi, eax
cmp esi, 4
jge 0x41daea
push 0
push 0xa
push ecx
push edi
call fcn.00549e00
cmp eax, 1
jne 0x41daec
test edx, edx
jne 0x41daec
xor esi, esi
mov ecx, dword [esp + 0x28]
movzx eax, byte [esi*2 + 0x561ac5]
mov byte [ecx - 1], al
sub ecx, 2
movzx eax, byte [esi*2 + str.thstndrd]
mov dword [esp + 0x28], ecx
mov byte [ecx], al
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x60], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], ecx
push ecx
push dword [esp + 0x5c]
dec edi
push eax
push esi
call fcn.00549e00
push dword [esp + 0x38]
mov ecx, dword [esp + 0x64]
push dword [esp + 0x5c]
push dword [esp + 0x2c]
mov al, byte [eax + ecx]
push esi
mov byte [edi], al
call fcn.004ef9a0
mov ecx, dword [esp + 0x38]
mov esi, eax
mov eax, edx
mov dword [esp + 0x24], eax
test eax, eax
ja 0x41db38
jb 0x41db76
test esi, esi
jne 0x41db38
mov eax, dword [esp + 0x34]
mov edx, edi
mov ecx, dword [esp + 0x3c]
sub eax, edx
mov esi, dword [esp + 0x44]
dec ecx
add ecx, eax
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x50]
cmp ecx, esi
jge 0x41dbad
mov eax, esi
sub eax, ecx
mov ecx, esi
nop dword [eax + eax]
dec edx
mov byte [edx], 0x30
sub eax, 1
jne 0x41dba0
mov dword [esp + 0x28], edx
cmp byte [esp + 0x2e], 0
je 0x41dc0b
dec ecx
mov eax, 0x55555556
imul ecx
mov eax, ecx
mov ecx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cdq
idiv ecx
xor ecx, ecx
inc edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x28]
sub edx, esi
mov dword [esp + 0x28], edx
test esi, esi
jle 0x41dc0b
mov edi, dword [esp + 0x60]
lea eax, [esi + ecx]
mov al, byte [eax + edx]
mov byte [ecx + edx], al
sub edi, 1
jne 0x41dc02
mov al, byte [esp + 0x2e]
inc ecx
dec esi
mov edi, 3
mov byte [ecx + edx], al
inc ecx
test esi, esi
jg 0x41dbe6
mov edi, dword [esp + 0x50]
mov al, byte [esp + 0x22]
test al, al
je 0x41dc1a
dec edx
mov dword [esp + 0x28], edx
mov byte [edx], al
cmp byte [esp + 0x2f], 0
je 0x41dc50
mov eax, dword [esp + 0x4c]
mov al, byte [eax + 5]
test al, al
je 0x41dc50
movzx eax, al
add eax, 0x5605dc
mov cl, byte [eax]
test cl, cl
je 0x41dc50
nop word [eax + eax]
dec edx
lea eax, [eax + 1]
mov byte [edx], cl
mov cl, byte [eax]
test cl, cl
jne 0x41dc40
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
sub ecx, edx
dec esi
add esi, ecx
jmp 0x41e9e6
cmp byte [esp + 0x23], 0
je 0x41dcf5
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x41dc83
movsd xmm1, qword [esp + 0x88]
jmp 0x41dd02
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], eax
movzx eax, word [ecx + 8]
test al, 8
je 0x41dcab
movsd xmm1, qword [ecx]
mov cl, byte [esp + 0x1b]
movsd qword [esp + 0x70], xmm1
jmp 0x41dd08
test al, 0x24
je 0x41dcc8
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.0054aa40
mov cl, byte [esp + 0x1b]
movaps xmm1, xmm0
movsd qword [esp + 0x70], xmm1
jmp 0x41dd08
test al, 0x12
je 0x41dce0
call fcn.004419a0
mov cl, byte [esp + 0x1b]
movaps xmm1, xmm0
movsd qword [esp + 0x70], xmm0
jmp 0x41dd08
movsd xmm1, qword [esp + 0x88]
mov cl, byte [esp + 0x1b]
movsd qword [esp + 0x70], xmm1
jmp 0x41dd08
mov edx, dword [esp + 0x14]
add dword [esp + 0x1c], 8
movsd xmm1, qword [edx]
movsd qword [esp + 0x70], xmm1
movsd xmm2, qword [esp + 0x88]
test esi, esi
mov eax, 6
cmovs esi, eax
comisd xmm2, xmm1
mov dword [esp + 0x44], esi
jbe 0x41dd38
xorps xmm1, xmmword [esp + 0x90]
movsd qword [esp + 0x70], xmm1
mov byte [esp + 0x22], 0x2d
cmp cl, 3
jne 0x41dd46
test esi, esi
je 0x41dd46
dec esi
mov dword [esp + 0x44], esi
and esi, 0xfff
mov eax, 0xcccccccd
mul esi
mov eax, esi
shr edx, 3
lea ecx, [edx + edx*4]
add ecx, ecx
sub eax, ecx
movsd xmm3, qword [eax*8 + 0x5655d0]
cmp esi, 0xa
jb 0x41dd7f
movsd xmm0, qword [esp + 0xa0]
mulsd xmm3, xmm0
sub edx, 1
jne 0x41dd76
cmp byte [esp + 0x1b], 1
jne 0x41ddd7
movsd qword [esp + 0x60], xmm1
mov eax, 0x55555556
mov ecx, dword [esp + 0x64]
shr ecx, 0x14
and ecx, 0x7ff
sub ecx, 0x3ff
imul ecx
mov ecx, dword [esp + 0x44]
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
cmp eax, 0xf
jge 0x41ddc8
movaps xmm0, xmm1
mulsd xmm0, qword [esp + 0xa8]
addsd xmm3, xmm0
movaps xmm0, xmm3
addsd xmm1, xmm0
movsd qword [esp + 0x70], xmm1
jmp 0x41dddb
mov ecx, dword [esp + 0x44]
movsd qword [esp + 0x58], xmm1
xor eax, eax
mov edx, dword [esp + 0x5c]
mov esi, edx
and esi, 0x7ff00000
mov dword [esp + 0x14], eax
cmp esi, 0x7ff00000
jne 0x41de1f
mov eax, dword [esp + 0x58]
and edx, 0xfffff
or eax, edx
je 0x41de1b
mov dword [esp + 0x28], 0x5659a0
mov esi, 3
jmp 0x41e9e6
mov eax, dword [esp + 0x14]
comisd xmm1, xmm2
jbe 0x41df5c
movsd xmm4, qword [esp + 0xb8]
comisd xmm1, xmm4
movsd xmm5, qword [esp + 0xb0]
movaps xmm2, xmm5
jb 0x41de63
cmp eax, 0x15e
jg 0x41de5f
mulsd xmm2, xmm4
add eax, 0x64
movaps xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x41de44
mov dword [esp + 0x14], eax
movsd xmm4, qword [esp + 0xc0]
movaps xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x41de9b
nop dword [eax]
cmp eax, 0x15e
jg 0x41de97
movaps xmm2, xmm0
add eax, 0xa
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x41de80
mov dword [esp + 0x14], eax
movsd xmm4, qword [esp + 0x80]
movaps xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x41deca
cmp eax, 0x15e
jg 0x41dec6
movaps xmm2, xmm0
inc eax
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x41deb1
mov dword [esp + 0x14], eax
divsd xmm1, xmm2
movsd xmm0, qword [esp + 0xc8]
comisd xmm0, xmm1
movsd qword [esp + 0x70], xmm1
jbe 0x41df07
movsd xmm2, qword [esp + 0xd0]
nop dword [eax]
mulsd xmm1, xmm2
sub eax, 8
comisd xmm0, xmm1
ja 0x41def0
mov dword [esp + 0x14], eax
movsd qword [esp + 0x70], xmm1
comisd xmm5, xmm1
jbe 0x41df25
nop dword [eax]
mulsd xmm1, xmm4
dec eax
comisd xmm5, xmm1
ja 0x41df10
mov dword [esp + 0x14], eax
movsd qword [esp + 0x70], xmm1
cmp eax, 0x15e
jle 0x41df65
lea ecx, [esp + 0xe0]
xor eax, eax
mov dword [esp + 0x28], ecx
mov cl, byte [esp + 0x22]
test cl, cl
mov byte [esp + 0xe0], cl
setne al
mov dword [esp + eax + 0xe0], 0x666e49
lea esi, [eax + 3]
jmp 0x41e9e6
movsd xmm4, qword [esp + 0x80]
mov dl, byte [esp + 0x1b]
lea esi, [esp + 0xe0]
cmp dl, 1
je 0x41dfc5
addsd xmm1, xmm3
comisd xmm1, xmm4
movsd qword [esp + 0x70], xmm1
jb 0x41df99
mulsd xmm1, qword [esp + 0xd8]
inc eax
mov dword [esp + 0x14], eax
movsd qword [esp + 0x70], xmm1
cmp dl, 3
jne 0x41dfc5
cmp byte [esp + 0x2f], 0
sete byte [esp + 0x2e]
cmp eax, 0xfffffffc
jl 0x41dfbe
cmp eax, ecx
jg 0x41dfbe
sub ecx, eax
mov byte [esp + 0x1b], 1
mov dword [esp + 0x44], ecx
jmp 0x41dfcd
mov byte [esp + 0x1b], 2
jmp 0x41dfcd
mov dl, byte [esp + 0x2d]
mov byte [esp + 0x2e], dl
xor edx, edx
cmp byte [esp + 0x1b], 2
cmovne edx, eax
xor eax, eax
test edx, edx
mov dword [esp + 0x38], edx
cmovg eax, edx
cdq
mov dword [esp + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x24], edx
cdq
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x24], edx
cdq
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
adc dword [esp + 0x24], edx
add eax, 0xf
mov edx, dword [esp + 0x24]
adc edx, 0
js 0x41e03a
jg 0x41e01a
cmp eax, 0x46
jbe 0x41e03a
mov ecx, dword [esp + 0x30]
push edx
push eax
call fcn.0041d1b0
add esp, 8
mov dword [esp + 0x78], eax
mov esi, eax
test eax, eax
je case.default.0x41d7ad
mov ecx, dword [esp + 0x44]
movzx eax, byte [esp + 0x2d]
test ecx, ecx
mov dword [esp + 0x28], esi
lea eax, [eax + eax*4]
lea edx, [eax*2 + 0x10]
setg al
or al, byte [esp + 0x2d]
or byte [esp + 0x2f], al
mov al, byte [esp + 0x22]
mov dword [esp + 0x34], edx
test al, al
je 0x41e069
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x38]
test eax, eax
jns 0x41e077
mov byte [esi], 0x30
inc esi
jmp 0x41e0c9
movsd xmm1, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x80]
mov dword [esp + 0x38], eax
nop word [eax + eax]
test edx, edx
jg 0x41e098
mov al, 0x30
jmp 0x41e0af
cvttsd2si eax, xmm1
dec edx
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x38]
sub eax, 1
mov dword [esp + 0x38], eax
jns 0x41e090
mov dword [esp + 0x34], edx
movsd qword [esp + 0x70], xmm1
cmp byte [esp + 0x2f], 0
je 0x41e0d4
mov byte [esi], 0x2e
inc esi
inc eax
mov edx, eax
mov dword [esp + 0x3c], eax
neg edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
test eax, eax
jns 0x41e1ad
cmp dword [esp + 0x38], 8
jb 0x41e187
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
and eax, 0x80000007
jns 0x41e10c
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm0, xmmword [0x56c430]
neg eax
movaps xmm3, xmmword [0x56c3d0]
xorps xmm1, xmm1
mov dword [esp + 0x38], eax
xorps xmm2, xmm2
mov eax, dword [esp + 0x3c]
movaps xmmword [esp + 0x60], xmm0
nop
movd xmm0, dword [esp + 0x60]
add eax, 8
movd dword [esi], xmm0
psubd xmm1, xmm3
movd xmm0, dword [esp + 0x60]
psubd xmm2, xmm3
movd dword [esi + 4], xmm0
add esi, 8
cmp eax, dword [esp + 0x38]
jl 0x41e130
paddd xmm1, xmm2
mov dword [esp + 0x3c], eax
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], ecx
test eax, eax
jns 0x41e1ad
neg eax
push eax
push 0x30
push esi
mov dword [esp + 0x48], eax
call fcn.004f13c0
mov ecx, dword [esp + 0x50]
add esp, 0xc
add esi, dword [esp + 0x3c]
sub ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
test ecx, ecx
jle 0x41e1e9
dec ecx
test edx, edx
jg 0x41e1ba
mov al, 0x30
jmp 0x41e1e2
movsd xmm1, qword [esp + 0x70]
dec edx
cvttsd2si eax, xmm1
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x70], xmm1
mov byte [esi], al
inc esi
test ecx, ecx
jg 0x41e1b1
cmp byte [esp + 0x2e], 0
je 0x41e221
cmp byte [esp + 0x2f], 0
je 0x41e221
cmp byte [esi - 1], 0x30
jne 0x41e20a
nop dword [eax]
dec esi
mov byte [esi], 0
cmp byte [esi - 1], 0x30
je 0x41e200
cmp byte [esi - 1], 0x2e
jne 0x41e221
cmp byte [esp + 0x2d], 0
je 0x41e21d
mov byte [esi], 0x30
inc esi
jmp 0x41e221
dec esi
mov byte [esi], 0
cmp byte [esp + 0x1b], 2
jne 0x41e2c8
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
movzx eax, byte [eax + 4]
mov al, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], al
lea eax, [esi + 2]
mov dword [esp + 0x58], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
test ecx, ecx
mov dword [esp + 0x4c], eax
sets cl
lea ecx, [ecx*2 + 0x2b]
mov byte [esi + 1], cl
mov esi, dword [esp + 0x58]
cmp eax, 0x64
jl 0x41e296
mov eax, 0x51eb851f
imul dword [esp + 0x4c]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, esi
lea eax, [ecx + 0x30]
mov byte [edx], al
lea esi, [edx + 1]
imul eax, ecx, 0x64
mov ecx, dword [esp + 0x4c]
sub ecx, eax
mov dword [esp + 0x4c], ecx
jmp 0x41e29a
mov ecx, dword [esp + 0x4c]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + 0x30]
mov byte [esi], al
mov al, cl
shl cl, 2
add al, cl
mov ecx, dword [esp + 0x4c]
add al, al
sub cl, al
add cl, 0x30
mov byte [esi + 1], cl
add esi, 2
mov edx, dword [esp + 0x28]
mov byte [esi], 0
sub esi, edx
cmp byte [esp + 0x4b], 0
je 0x41e9e6
mov al, byte [esp + 0x13]
test al, al
jne 0x41e9ea
mov eax, dword [esp + 0x40]
cmp esi, eax
jge 0x41e9e6
sub eax, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov ecx, esi
cmp esi, eax
jl 0x41e327
mov esi, edx
mov edi, eax
sub esi, edi
nop word [eax + eax]
mov al, byte [esi + ecx]
mov byte [ecx + edx], al
dec ecx
cmp ecx, edi
jge 0x41e310
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
xor ecx, ecx
cmp byte [esp + 0x22], cl
setne cl
test eax, eax
je 0x41e9e6
push dword [esp + 0x34]
lea eax, [ecx + edx]
push 0x30
push eax
call fcn.004f13c0
add esp, 0xc
jmp 0x41e9e6
cmp byte [esp + 0x23], 0
jne 0x41ec9e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
add dword [esp + 0x1c], 4
mov ecx, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
jmp 0x41ec9e
lea eax, [esp + 0xe0]
mov byte [esp + 0xe0], 0x25
mov dword [esp + 0x28], eax
mov esi, 1
jmp 0x41e9e6
cmp byte [esp + 0x23], 0
je 0x41e44b
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x41e435
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
je 0x41e435
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x41e3d7
cmp byte [ecx + 0xa], 1
jne 0x41e3d7
mov edx, dword [ecx + 0x10]
jmp 0x41e3e5
test dl, 1
jne 0x41e435
mov dl, 1
call fcn.00442660
mov edx, eax
mov esi, 1
mov dword [esp + 0x14], esi
test edx, edx
je 0x41e43e
mov cl, byte [edx]
mov byte [esp + 0xe0], cl
movsx ecx, cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x41e515
nop dword [eax]
mov cl, byte [edx + esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x41e515
mov byte [esp + esi + 0xe0], cl
inc esi
mov dword [esp + 0x14], esi
cmp esi, 4
jl 0x41e410
jmp 0x41e515
mov esi, 1
mov dword [esp + 0x14], esi
mov byte [esp + 0xe0], 0
jmp 0x41e515
mov edx, dword [esp + 0x14]
add dword [esp + 0x1c], 4
mov ecx, dword [edx]
cmp ecx, 0x80
jae 0x41e46f
mov byte [esp + 0xe0], cl
mov esi, 1
jmp 0x41e511
mov eax, ecx
cmp ecx, 0x800
jae 0x41e49b
shr eax, 6
and cl, 0x3f
and al, 0x1f
mov esi, 2
sub al, 0x40
add cl, 0x80
mov byte [esp + 0xe0], al
mov byte [esp + 0xe1], cl
jmp 0x41e511
mov dl, cl
and dl, 0x3f
add dl, 0x80
cmp ecx, 0x10000
jae 0x41e4d7
shr eax, 0xc
mov esi, 3
shr ecx, 6
and al, 0xf
sub al, 0x20
mov byte [esp + 0xe2], dl
and cl, 0x3f
mov byte [esp + 0xe0], al
add cl, 0x80
mov byte [esp + 0xe1], cl
jmp 0x41e511
shr eax, 0x12
mov esi, 4
and al, 7
mov byte [esp + 0xe3], dl
sub al, 0x10
mov byte [esp + 0xe0], al
mov eax, ecx
shr eax, 0xc
shr ecx, 6
and al, 0x3f
add al, 0x80
and cl, 0x3f
add cl, 0x80
mov byte [esp + 0xe1], al
mov byte [esp + 0xe2], cl
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x44]
cmp eax, 1
jle 0x41e5f9
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov edx, ecx
inc ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], ecx
cmp ecx, 1
jle 0x41e5a1
cmp byte [esp + 0x13], 0
jne 0x41e5a1
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
mov eax, edx
cdq
add dword [esp + 0x34], eax
adc ecx, edx
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 8]
js 0x41e57f
jg 0x41e566
cmp dword [esp + 0x34], eax
jb 0x41e57f
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
call fcn.0041eed0
mov dword [esp + 0x38], eax
test eax, eax
jle 0x41e595
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
mov ecx, dword [edx + 0x10]
dec edi
mov eax, dword [edx + 4]
mov byte [ecx + eax], 0x20
inc dword [edx + 0x10]
test edi, edi
jg 0x41e583
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], 0
mov edi, dword [esp + 0x30]
dec eax
mov dword [esp + 0x58], eax
nop word [eax + eax]
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x41e5ce
push esi
lea edx, [esp + 0xe4]
mov ecx, edi
call fcn.0041f0f0
add esp, 4
jmp 0x41e5ee
test esi, esi
je 0x41e5ee
push esi
lea eax, [esp + 0xe4]
mov dword [edi + 0x10], ecx
push eax
mov eax, dword [edi + 4]
sub eax, esi
add eax, ecx
push eax
call fcn.004f0e30
add esp, 0xc
sub dword [esp + 0x58], 1
jne 0x41e5b0
mov edi, dword [esp + 0x50]
lea edx, [esp + 0xe0]
mov dword [esp + 0x28], edx
jmp 0x41e9ac
cmp byte [esp + 0x23], 0
je 0x41e686
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x41e625
xor edx, edx
mov cl, 5
mov dword [esp + 0x28], edx
jmp 0x41e695
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], eax
test ecx, ecx
jne 0x41e643
xor edx, edx
mov cl, 5
mov dword [esp + 0x28], edx
jmp 0x41e695
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x41e666
cmp byte [ecx + 0xa], 1
jne 0x41e666
mov edx, dword [ecx + 0x10]
mov cl, 5
mov dword [esp + 0x28], edx
jmp 0x41e695
test dl, 1
je 0x41e675
xor edx, edx
mov cl, 5
mov dword [esp + 0x28], edx
jmp 0x41e695
mov dl, 1
call fcn.00442660
mov edx, eax
mov dword [esp + 0x28], eax
mov cl, 5
jmp 0x41e695
mov edx, dword [esp + 0x14]
add dword [esp + 0x1c], 4
mov edx, dword [edx]
mov dword [esp + 0x28], edx
test edx, edx
jne 0x41e6a7
mov edx, 0x55e7eb
mov dword [esp + 0x28], edx
jmp 0x41e731
cmp cl, 6
jne 0x41e731
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x10], 0
jne 0x41e72d
cmp dword [ecx + 0xc], 0
je 0x41e72d
cmp dword [esp + 0x40], 0
jne 0x41e72d
test esi, esi
jns 0x41e72d
cmp byte [ecx + 0x14], 0
jne 0x41e72d
mov eax, dword [ecx]
mov dword [ecx + 4], edx
test eax, eax
je 0x41e6f3
cmp edx, dword [eax + 0x138]
jb 0x41e6f3
cmp edx, dword [eax + 0x13c]
jae 0x41e6f3
movzx eax, word [eax + 0x11c]
jmp 0x41e705
push edx
call dword [0x577b54]
mov edx, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [esp + 0x30]
mov dword [ecx + 8], eax
lea esi, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x41e710
or byte [ecx + 0x15], 4
sub edx, esi
and edx, 0x7fffffff
xor esi, esi
mov dword [ecx + 0x10], edx
jmp 0x41e9e6
mov dword [esp + 0x78], edx
test esi, esi
js 0x41e7a4
cmp byte [esp + 0x2d], 0
je 0x41e779
mov ecx, dword [esp + 0x44]
mov esi, edx
test ecx, ecx
jle 0x41e76e
mov al, byte [esi]
dec ecx
test al, al
je 0x41e76e
inc esi
cmp al, 0xc0
jb 0x41e76a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x41e76a
nop word [eax + eax]
mov al, byte [esi + 1]
inc esi
and al, 0xc0
cmp al, 0x80
je 0x41e760
test ecx, ecx
jg 0x41e746
sub esi, edx
mov dword [esp + 0x14], esi
jmp 0x41e9ac
mov eax, dword [esp + 0x44]
xor esi, esi
test eax, eax
jle 0x41e9e6
nop word [eax + eax]
cmp byte [esi + edx], 0
je 0x41e9e6
inc esi
cmp esi, eax
jl 0x41e790
jmp 0x41e9e6
mov esi, edx
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x41e7b0
sub esi, ecx
and esi, 0x7fffffff
mov dword [esp + 0x14], esi
jmp 0x41e9a5
cmp cl, 0xe
mov eax, 0x27
mov edx, 0x22
cmove eax, edx
cmp byte [esp + 0x23], 0
mov dword [esp + 0x24], eax
je 0x41e84f
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x41e7f8
mov dword [esp + 0x58], 0
jmp 0x41e866
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], eax
test ecx, ecx
jne 0x41e814
mov cl, byte [esp + 0x1b]
xor eax, eax
jmp 0x41e85a
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x41e835
cmp byte [ecx + 0xa], 1
jne 0x41e835
mov eax, dword [ecx + 0x10]
mov cl, byte [esp + 0x1b]
jmp 0x41e85a
test dl, 1
je 0x41e842
mov cl, byte [esp + 0x1b]
xor eax, eax
jmp 0x41e85a
mov dl, 1
call fcn.00442660
mov cl, byte [esp + 0x1b]
jmp 0x41e85a
mov edx, dword [esp + 0x14]
add dword [esp + 0x1c], 4
mov eax, dword [edx]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x58], eax
test eax, eax
jne 0x41e87a
cmp cl, 0xa
mov eax, str.NULL
mov ecx, str._NULL_
cmovne eax, ecx
mov dword [esp + 0x3c], eax
xor eax, eax
xor edx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], edx
test esi, esi
je 0x41e8e0
mov edi, dword [esp + 0x3c]
nop
mov cl, byte [edx + edi]
test cl, cl
je 0x41e8d8
inc eax
cmp cl, byte [esp + 0x24]
cmovne eax, dword [esp + 0x38]
cmp byte [esp + 0x2d], 0
mov dword [esp + 0x38], eax
je 0x41e8d2
and cl, 0xc0
cmp cl, 0xc0
jne 0x41e8d2
lea ecx, [edi + 1]
add ecx, edx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x41e8ce
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
and al, 0xc0
inc edx
cmp al, 0x80
je 0x41e8c1
mov eax, dword [esp + 0x38]
inc edx
sub esi, 1
jne 0x41e890
mov edi, dword [esp + 0x50]
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x58], 0
je 0x41e8f6
cmp byte [esp + 0x1b], 0xa
mov dword [esp + 0x34], 1
je 0x41e8fe
mov dword [esp + 0x34], 0
add eax, 3
add eax, edx
cmp eax, 0x46
jle 0x41e92b
mov ecx, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.0041d1b0
add esp, 8
mov dword [esp + 0x78], eax
mov dword [esp + 0x28], eax
mov edx, eax
test eax, eax
je case.default.0x41d7ad
jmp 0x41e936
lea edx, [esp + 0xe0]
mov dword [esp + 0x28], edx
xor esi, esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x34], esi
je 0x41e951
mov eax, dword [esp + 0x24]
mov esi, 1
mov byte [edx], al
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x4c]
xor ecx, ecx
test eax, eax
jle 0x41e98e
mov edi, dword [esp + 0x3c]
nop
mov al, byte [ecx + edi]
mov byte [esi + edx], al
inc esi
cmp al, byte [esp + 0x24]
mov byte [esp + 0x4b], al
mov eax, dword [esp + 0x4c]
jne 0x41e981
mov al, byte [esp + 0x4b]
mov byte [esi + edx], al
inc esi
mov eax, dword [esp + 0x4c]
inc ecx
cmp ecx, eax
jl 0x41e960
mov edi, dword [esp + 0x50]
mov dword [esp + 0x14], esi
cmp dword [esp + 0x34], 0
je 0x41e9a1
mov eax, dword [esp + 0x24]
mov byte [esi + edx], al
inc esi
mov dword [esp + 0x14], esi
mov byte [esi + edx], 0
cmp byte [esp + 0x2d], 0
je 0x41e9e6
cmp dword [esp + 0x40], 0
jle 0x41e9e6
lea eax, [esi - 1]
mov dword [esp + 0x60], eax
test eax, eax
js 0x41e9e6
mov edi, dword [esp + 0x40]
mov esi, eax
lea eax, [esi + edx]
mov al, byte [eax]
lea ecx, [edi + 1]
and al, 0xc0
cmp al, 0x80
cmovne ecx, edi
sub esi, 1
mov edi, ecx
jns 0x41e9c4
mov esi, dword [esp + 0x14]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x50]
mov al, byte [esp + 0x13]
mov edx, dword [esp + 0x40]
sub edx, esi
mov dword [esp + 0x40], edx
test edx, edx
jle 0x41eca0
test al, al
jne 0x41ea60
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x58], edx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], eax
mov eax, edx
cdq
add dword [esp + 0x34], eax
adc ecx, edx
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 8]
js 0x41ea44
jg 0x41ea2b
cmp dword [esp + 0x34], eax
jb 0x41ea44
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
call fcn.0041eed0
mov edx, dword [esp + 0x30]
mov dword [esp + 0x58], eax
test eax, eax
jle 0x41ea64
mov edi, dword [esp + 0x58]
mov ecx, dword [edx + 0x10]
dec edi
mov eax, dword [edx + 4]
mov byte [ecx + eax], 0x20
inc dword [edx + 0x10]
test edi, edi
jg 0x41ea48
mov edi, dword [esp + 0x50]
jmp 0x41ea64
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x10]
lea ecx, [edx + 0x10]
add eax, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], eax
lea eax, [edx + 8]
mov edx, dword [esp + 0x34]
cmp edx, dword [eax]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x24], eax
jb 0x41ea9a
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
push esi
call fcn.0041f0f0
add esp, 4
jmp 0x41eabb
test esi, esi
je 0x41eabf
mov eax, dword [esp + 0x34]
mov dword [ecx], eax
mov eax, dword [edx + 4]
push esi
push dword [esp + 0x2c]
sub eax, esi
add eax, dword [esp + 0x3c]
push eax
call fcn.004f0e30
add esp, 0xc
mov ecx, dword [esp + 0x14]
cmp byte [esp + 0x13], 0
je 0x41ed1d
mov esi, dword [esp + 0x40]
mov eax, esi
cdq
add eax, dword [ecx]
mov dword [esp + 0x60], eax
adc edx, 0
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
js 0x41eb03
jg 0x41eaea
cmp dword [esp + 0x60], eax
jb 0x41eb03
mov ecx, dword [esp + 0x30]
mov edx, esi
call fcn.0041eed0
mov esi, eax
test esi, esi
jle 0x41ed1d
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov ecx, dword [ecx]
dec esi
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
mov ecx, dword [esp + 0x14]
inc dword [ecx]
test esi, esi
jg 0x41eb07
mov edi, dword [esp + 0x50]
jmp 0x41ed1d
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x15], 1
je case.default.0x41d7ad
mov edx, dword [esp + 0x14]
add dword [esp + 0x1c], 4
mov eax, dword [edx]
test eax, eax
je 0x41ec9e
mov esi, dword [eax + 4]
test esi, esi
je 0x41ec9e
mov edx, dword [ecx + 0x10]
mov eax, dword [eax]
add edx, esi
mov dword [esp + 0x58], eax
push esi
cmp edx, dword [ecx + 8]
jb 0x41eb70
mov edx, eax
call fcn.0041f0f0
add esp, 4
jmp 0x41ec9e
mov eax, dword [ecx + 4]
push dword [esp + 0x5c]
sub eax, esi
mov dword [ecx + 0x10], edx
add eax, edx
push eax
call fcn.004f0e30
add esp, 0xc
jmp 0x41ec9e
mov esi, dword [esp + 0x30]
test byte [esi + 0x15], 1
je case.default.0x41d7ad
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 8]
mov ecx, dword [ecx]
mov dword [esp + 0x70], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x34], ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + eax*8 + 0xc]
mov dword [esp + 0x58], eax
test eax, eax
je 0x41ec37
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41ebc6
sub ecx, edx
mov edx, dword [esi + 0x10]
and ecx, 0x3fffffff
add edx, ecx
cmp edx, dword [esi + 8]
jb 0x41ebf0
mov edx, dword [esp + 0x58]
push ecx
mov ecx, esi
call fcn.0041f0f0
add esp, 4
jmp 0x41ec0c
test ecx, ecx
je 0x41ec0c
mov eax, dword [esi + 4]
push ecx
push dword [esp + 0x5c]
sub eax, ecx
mov dword [esi + 0x10], edx
add eax, edx
push eax
call fcn.004f0e30
add esp, 0xc
mov ecx, dword [esi + 0x10]
inc ecx
cmp ecx, dword [esi + 8]
jb 0x41ec28
push 1
mov edx, 0x5659b8
mov ecx, esi
call fcn.0041f0f0
add esp, 4
jmp 0x41ec33
mov eax, dword [esi + 4]
mov dword [esi + 0x10], ecx
mov byte [eax + ecx - 1], 0x2e
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x60]
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [esp + 0x58], eax
test eax, eax
jne 0x41ec4b
xor ecx, ecx
jmp 0x41ec5f
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41ec50
sub ecx, edx
and ecx, 0x3fffffff
mov edx, dword [esi + 0x10]
add edx, ecx
cmp edx, dword [esi + 8]
jb 0x41ec7a
mov edx, dword [esp + 0x58]
push ecx
mov ecx, esi
call fcn.0041f0f0
add esp, 4
jmp 0x41ec96
test ecx, ecx
je 0x41ec96
mov eax, dword [esi + 4]
push ecx
push dword [esp + 0x5c]
sub eax, ecx
mov dword [esi + 0x10], edx
add eax, edx
push eax
call fcn.004f0e30
add esp, 0xc
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
xor esi, esi
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x10]
lea edx, [ecx + 0x10]
add eax, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], eax
lea eax, [ecx + 8]
mov ecx, dword [esp + 0x34]
cmp ecx, dword [eax]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], eax
jb 0x41ecec
push esi
mov esi, dword [esp + 0x2c]
mov edx, esi
call fcn.0041f0f0
mov eax, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
jmp 0x41ed25
test esi, esi
je 0x41ed21
mov eax, dword [esp + 0x34]
mov dword [edx], eax
mov eax, dword [ecx + 4]
push esi
push dword [esp + 0x2c]
sub eax, esi
add eax, dword [esp + 0x3c]
push eax
call fcn.004f0e30
mov eax, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x78]
test edx, edx
je 0x41ed8e
mov eax, dword [ecx]
mov dword [esp + 0x60], eax
test eax, eax
je 0x41ed79
cmp dword [eax + 0x1e8], 0
je 0x41ed49
mov ecx, eax
call fcn.0041c6a0
jmp 0x41ed82
cmp edx, dword [eax + 0x138]
jb 0x41ed79
cmp edx, dword [eax + 0x13c]
jae 0x41ed79
mov eax, dword [eax + 0x134]
mov dword [edx], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], esi
mov dword [eax + 0x134], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
jmp 0x41ed86
push edx
call fcn.0041c630
add esp, 4
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x78], 0
movsx eax, byte [edi + 1]
inc edi
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x41d377
pop edi
pop esi
mov ecx, dword [esp + 0x124]
xor ecx, esp
call fcn.004eedbd
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
mov esi, dword [edx]
inc esi
cmp esi, dword [eax]
jb 0x41ede5
mov ecx, dword [esp + 0x30]
mov edx, 0x56599c
push 1
call fcn.0041f0f0
add esp, 4
pop edi
pop esi
mov ecx, dword [esp + 0x124]
xor ecx, esp
call fcn.004eedbd
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
mov dword [edx], esi
mov eax, dword [eax + 4]
mov byte [eax + esi - 1], 0x25
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
xor ecx, esp
call fcn.004eedbd
mov esp, ebp
pop ebp
ret