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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x124
mov eax, dword [0x540020]
xor eax, esp
mov dword [esp + 0x120], eax
mov edx, dword [ebp + 0x10]
xor eax, eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x6c], eax
test byte [edi + 0x15], 2
mov dword [esp + 0x58], eax
mov dword [esp + 0x18], eax
je 0x42d016
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x58], eax
mov byte [esp + 0x1d], 1
jmp 0x42d01a
mov byte [esp + 0x1d], al
movsx eax, byte [esi]
test eax, eax
je case.default.0x42d4a7
movsd xmm0, qword [0x523e50]
movsd qword [esp + 0xa0], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [0x523c60]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [0x523c50]
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [0x523c70]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [0x523d70]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x523d38]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [0x523c90]
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [0x523c30]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [0x523d08]
movsd qword [esp + 0xd8], xmm0
cmp eax, 0x25
je 0x42d123
mov edx, esi
mov dword [esp + 0x18], edx
nop
mov al, byte [esi + 1]
inc esi
test al, al
je 0x42d0dc
cmp al, 0x25
jne 0x42d0d0
mov eax, dword [edi + 0x10]
mov ecx, esi
sub ecx, edx
add eax, ecx
mov dword [esp + 0x20], eax
cmp eax, dword [edi + 8]
jb 0x42d0fb
push ecx
mov ecx, edi
call fcn.0042ec20
add esp, 4
jmp 0x42d116
test ecx, ecx
je 0x42d116
mov dword [edi + 0x10], eax
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
add eax, dword [esp + 0x24]
push edx
push eax
call fcn.004df730
add esp, 0xc
cmp byte [esi], 0
je case.default.0x42d4a7
mov edx, dword [esp + 0x24]
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
test ecx, ecx
je 0x42e8ed
or edi, 0xffffffff
mov byte [esp + 0x3b], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x1f], 0
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1c], 0
mov byte [esp + 0x16], 0
mov dword [esp + 0x2c], 0
mov byte [esp + 0x3a], 0
mov dword [esp + 0x4c], edi
nop word [eax + eax]
lea eax, [ecx - 0x20]
cmp eax, 0x4c
ja case.0x42d183.34
movzx eax, byte [eax + 0x42e96c]
jmp dword [eax*4 + 0x42e93c]
mov byte [esp + 0x16], 1
jmp 0x42d41d
mov byte [esp + 0x1c], 0x2b
jmp 0x42d41d
mov byte [esp + 0x1c], 0x20
jmp 0x42d41d
mov byte [esp + 0x1f], 1
jmp 0x42d41d
mov byte [esp + 0x2b], 1
jmp 0x42d41d
mov byte [esp + 0x3b], 1
jmp 0x42d41d
mov byte [esp + 0x1e], 0x2c
jmp 0x42d41d
inc esi
lea eax, [ecx - 0x30]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jl 0x42d20d
mov edi, eax
cmp ecx, 0x39
ja 0x42d1fd
lea edi, [edi + edi*4]
inc esi
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x42d1e6
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x5c], esi
and eax, 0x7fffffff
mov dword [esp + 0x2c], eax
cmp ecx, 0x2e
je 0x42d41c
jmp 0x42d417
cmp byte [esp + 0x1d], 0
je 0x42d2b9
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x42d24d
mov edx, dword [esp + 0x24]
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov eax, dword [esp + 0x40]
jmp 0x42d2c2
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x58]
mov dword [edx + 4], eax
movzx eax, word [ecx + 8]
test al, 4
je 0x42d274
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
jmp 0x42d2c2
test al, 8
je 0x42d28b
movsd xmm0, qword [ecx]
call fcn.0044bb80
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
jmp 0x42d2c2
test al, 0x12
je 0x42d29e
call fcn.0044bbb0
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
jmp 0x42d2c2
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
jmp 0x42d2c2
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
test eax, eax
jns 0x42d2e6
mov byte [esp + 0x16], 1
cmp eax, 0x80000001
jl 0x42d2de
neg eax
mov dword [esp + 0x2c], eax
jmp 0x42d2e6
mov dword [esp + 0x2c], 0
movsx ecx, byte [esi + 1]
lea eax, [esi + 1]
cmp ecx, 0x2e
je 0x42d41d
cmp ecx, 0x6c
je 0x42d41d
mov dword [esp + 0x5c], eax
jmp case.0x42d183.34
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
cmp ecx, 0x2a
jne 0x42d3eb
cmp byte [esp + 0x1d], 0
je 0x42d3af
mov edi, dword [esp + 0x58]
mov edx, dword [edi + 4]
cmp dword [edi], edx
jg 0x42d343
mov edx, dword [esp + 0x24]
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov edi, dword [esp + 0x40]
jmp 0x42d3b8
mov eax, dword [edi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [edi + 4], eax
movzx eax, word [ecx + 8]
test al, 4
je 0x42d366
mov edx, dword [ecx + 4]
mov edi, dword [ecx]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
jmp 0x42d3b8
test al, 8
je 0x42d37f
movsd xmm0, qword [ecx]
call fcn.0044bb80
mov dword [esp + 0x44], edx
mov edi, eax
mov edx, dword [esp + 0x24]
jmp 0x42d3b8
test al, 0x12
je 0x42d394
call fcn.0044bbb0
mov dword [esp + 0x44], edx
mov edi, eax
mov edx, dword [esp + 0x24]
jmp 0x42d3b8
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
jmp 0x42d3b8
mov edi, dword [edx]
add edx, 4
mov dword [esp + 0x24], edx
mov dword [esp + 0x4c], edi
test edi, edi
jns 0x42d3e0
cmp edi, 0x80000001
jl 0x42d3d9
movsx ecx, byte [esi + 1]
neg edi
inc esi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x5c], esi
jmp 0x42d417
or edi, 0xffffffff
mov dword [esp + 0x4c], edi
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
jmp 0x42d417
xor edi, edi
cmp ecx, 0x30
jl 0x42d40d
cmp ecx, 0x39
ja 0x42d409
lea edi, [edi + edi*4]
inc esi
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x42d3f2
mov dword [esp + 0x5c], esi
and edi, 0x7fffffff
mov dword [esp + 0x4c], edi
cmp ecx, 0x6c
jne case.0x42d183.34
dec esi
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
test ecx, ecx
jne 0x42d170
jmp case.0x42d183.34
movsx ecx, byte [esi + 1]
inc esi
mov byte [esp + 0x3a], 1
mov dword [esp + 0x5c], esi
cmp ecx, 0x6c
jne case.0x42d183.34
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x5c], esi
mov byte [esp + 0x3a], 2
mov dword [esp + 0x50], 0x518580
xor esi, esi
mov byte [esp + 0x17], 0x11
mov edx, 0x518580
movsx eax, byte [edx]
cmp ecx, eax
je 0x42d482
add edx, 6
inc esi
cmp edx, 0x51860a
jl 0x42d465
mov dl, byte [esp + 0x17]
mov ecx, dword [esp + 0x50]
jmp 0x42d49b
lea eax, [esi + esi*2]
mov dl, byte [eax*2 + 0x518583]
lea ecx, [eax*2 + 0x518580]
mov dword [esp + 0x50], ecx
mov byte [esp + 0x17], dl
movzx eax, dl
cmp eax, 0x10
ja case.default.0x42d4a7
jmp dword [eax*4 + 0x42e9bc]
mov byte [esp + 0x3a], 1
mov byte [esp + 0x1e], 0
test byte [ecx + 2], 1
je 0x42d5e8
cmp byte [esp + 0x1d], 0
je 0x42d579
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x42d4fa
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov dl, byte [esp + 0x1c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x48], ecx
jmp 0x42d6b4
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, 4
je 0x42d526
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
mov ecx, eax
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
jmp 0x42d5a5
test al, 8
je 0x42d541
movsd xmm0, qword [ecx]
call fcn.0044bb80
mov dword [esp + 0x48], edx
mov esi, eax
mov dword [esp + 0x30], eax
mov ecx, edx
jmp 0x42d5a5
test al, 0x12
je 0x42d558
call fcn.0044bbb0
mov dword [esp + 0x48], edx
mov esi, eax
mov dword [esp + 0x30], eax
mov ecx, edx
jmp 0x42d5a5
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
mov esi, eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], eax
jmp 0x42d5a5
mov al, byte [esp + 0x3a]
mov ecx, dword [esp + 0x24]
test al, al
je 0x42d597
cmp al, 2
jne 0x42d597
mov esi, dword [ecx]
add ecx, 8
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx - 4]
jmp 0x42d5a5
mov eax, dword [ecx]
add ecx, 4
cdq
mov dword [esp + 0x24], ecx
mov esi, eax
mov ecx, edx
test ecx, ecx
jg 0x42d4e9
jl 0x42d5b7
test esi, esi
jae 0x42d4e9
test esi, esi
jne 0x42d5d2
cmp ecx, 0x80000000
jne 0x42d5d2
mov dword [esp + 0x48], ecx
mov dl, 0x2d
mov dword [esp + 0x30], esi
jmp 0x42d6b0
neg esi
mov dl, 0x2d
mov dword [esp + 0x30], esi
adc ecx, 0
neg ecx
mov dword [esp + 0x48], ecx
jmp 0x42d6b0
cmp byte [esp + 0x1d], 0
je 0x42d67d
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x42d65c
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, 4
je 0x42d62a
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
mov ecx, eax
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], eax
jmp 0x42d6ae
test al, 8
je 0x42d645
movsd xmm0, qword [ecx]
call fcn.0044bb80
mov dword [esp + 0x48], edx
mov esi, eax
mov dword [esp + 0x30], eax
mov ecx, edx
jmp 0x42d6ae
test al, 0x12
je 0x42d65c
call fcn.0044bbb0
mov dword [esp + 0x48], edx
mov esi, eax
mov dword [esp + 0x30], eax
mov ecx, edx
jmp 0x42d6ae
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
mov esi, eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], eax
jmp 0x42d6ae
mov al, byte [esp + 0x3a]
mov ecx, dword [esp + 0x24]
test al, al
je 0x42d69b
cmp al, 2
jne 0x42d69b
mov esi, dword [ecx]
add ecx, 8
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx - 4]
jmp 0x42d6a6
mov esi, dword [ecx]
add ecx, 4
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x48], ecx
xor dl, dl
mov byte [esp + 0x1c], dl
mov eax, esi
or eax, ecx
jne 0x42d6be
mov byte [esp + 0x1f], al
cmp byte [esp + 0x3b], 0
je 0x42d6db
mov ecx, dword [esp + 0x2c]
xor eax, eax
test dl, dl
setne al
sub ecx, eax
cmp edi, ecx
cmovl edi, ecx
mov dword [esp + 0x4c], edi
cmp edi, 0x25
jge 0x42d6f6
mov eax, 0x46
lea ecx, [esp + 0xe0]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ecx
jmp 0x42d749
mov eax, edi
cdq
add eax, 0xa
mov ecx, edx
mov dword [esp + 0x3c], eax
adc ecx, 0
cmp byte [esp + 0x1e], 0
je 0x42d725
mov eax, 0x55555556
imul edi
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 + 0x38]
push eax
call fcn.0042cf20
add esp, 8
mov dword [esp + 0x6c], eax
mov ecx, eax
mov dword [esp + 0x20], ecx
test eax, eax
je case.default.0x42d4a7
mov eax, dword [esp + 0x3c]
dec eax
add eax, ecx
cmp byte [esp + 0x17], 0xf
mov dword [esp + 0x18], eax
jne 0x42d81c
mov eax, esi
mov ecx, 0xcccccccd
mul ecx
lea edi, [ecx - 1]
mov dword [esp + 0x40], eax
mov esi, edx
mov eax, dword [esp + 0x30]
mul edi
mov edi, eax
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x48]
mul ecx
mov ecx, eax
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x48]
mov edx, 0xcccccccc
mul edx
add ecx, esi
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x80]
adc edx, 0
mov dword [esp + 0x54], eax
mov esi, eax
add edi, ecx
mov ecx, dword [esp + 0x60]
adc ecx, 0
mov dword [esp + 0x80], edi
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x40]
adc eax, eax
add esi, edx
adc ecx, eax
shrd esi, ecx, 3
mov dword [esp + 0x54], esi
shr ecx, 3
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x30]
add eax, eax
mov edi, esi
sub edi, eax
cmp edi, 4
jge 0x42d7fc
mov eax, dword [esp + 0x54]
push 0
push 0xa
push ecx
push eax
call fcn.004ffa90
cmp eax, 1
jne 0x42d7fe
test edx, edx
jne 0x42d7fe
xor edi, edi
mov ecx, dword [esp + 0x18]
mov al, byte [edi*2 + 0x51549d]
mov byte [ecx - 1], al
sub ecx, 2
mov al, byte [edi*2 + str.thstndrd]
mov dword [esp + 0x18], ecx
mov byte [ecx], al
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x40], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], eax
push ebx
push eax
push ecx
push edx
push esi
dec edi
call fcn.004de720
mov dword [esp + 0x68], ebx
pop ebx
mov esi, eax
mov eax, dword [esp + 0x40]
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x30]
mov byte [edi], al
mov eax, dword [esp + 0x54]
test edx, edx
ja 0x42d846
jb 0x42d873
test esi, esi
jne 0x42d846
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
sub eax, edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
lea edx, [esi - 1]
add edx, eax
cmp edx, edi
jge 0x42d8a5
mov eax, edi
sub eax, edx
mov edx, edi
dec ecx
mov byte [ecx], 0x30
sub eax, 1
jne 0x42d898
mov dword [esp + 0x18], ecx
cmp byte [esp + 0x1e], 0
je 0x42d8f5
lea eax, [edx - 1]
mov esi, 3
cdq
idiv esi
mov esi, eax
sub ecx, esi
mov dword [esp + 0x18], ecx
lea edi, [edx + 1]
xor edx, edx
test esi, esi
jle 0x42d8f1
nop dword [eax + eax]
lea eax, [esi + edx]
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
sub edi, 1
jne 0x42d8ec
mov al, byte [esp + 0x1e]
inc edx
dec esi
mov edi, 3
mov byte [edx + ecx], al
inc edx
test esi, esi
jg 0x42d8d0
mov esi, dword [esp + 0x3c]
mov al, byte [esp + 0x1c]
test al, al
je 0x42d904
dec ecx
mov dword [esp + 0x18], ecx
mov byte [ecx], al
cmp byte [esp + 0x1f], 0
je 0x42d934
mov eax, dword [esp + 0x50]
mov al, byte [eax + 5]
test al, al
je 0x42d934
movzx eax, al
add eax, 0x514100
mov dl, byte [eax]
test dl, dl
je 0x42d934
dec ecx
lea eax, [eax + 1]
mov byte [ecx], dl
mov dl, byte [eax]
test dl, dl
jne 0x42d924
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x20]
dec esi
sub eax, ecx
add esi, eax
mov edi, dword [esp + 0x18]
mov dl, byte [esp + 0x16]
mov eax, dword [esp + 0x2c]
sub eax, esi
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x42e015
test dl, dl
jne 0x42e64c
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x54], eax
cdq
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x20], ecx
xor ecx, ecx
add dword [esp + 0x20], eax
adc ecx, edx
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
js 0x42d9a7
jg 0x42d988
cmp dword [esp + 0x20], eax
jb 0x42d9a7
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
call fcn.0042ea00
mov edx, dword [esp + 0x34]
mov ecx, eax
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x42e650
mov edi, dword [esp + 0x54]
nop dword [eax + eax]
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 0x42d9b0
mov edi, dword [esp + 0x18]
jmp 0x42e650
cmp byte [esp + 0x1d], 0
je 0x42da48
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x42da36
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, 8
je 0x42da01
movsd xmm1, qword [ecx]
mov dl, byte [esp + 0x17]
movsd qword [esp + 0x60], xmm1
jmp 0x42da5e
test al, 4
je 0x42da1e
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004ffd20
mov dl, byte [esp + 0x17]
movaps xmm1, xmm0
movsd qword [esp + 0x60], xmm1
jmp 0x42da5e
test al, 0x12
je 0x42da36
call fcn.0044bc20
mov dl, byte [esp + 0x17]
movaps xmm1, xmm0
movsd qword [esp + 0x60], xmm0
jmp 0x42da5e
movsd xmm1, qword [esp + 0x78]
mov dl, byte [esp + 0x17]
movsd qword [esp + 0x60], xmm1
jmp 0x42da5e
mov ecx, dword [esp + 0x24]
add ecx, 8
mov dword [esp + 0x24], ecx
movsd xmm1, qword [ecx - 8]
movsd qword [esp + 0x60], xmm1
movsd xmm3, qword [esp + 0x78]
test edi, edi
mov eax, 6
cmovs edi, eax
comisd xmm3, xmm1
jbe 0x42da87
xorps xmm1, xmmword [esp + 0xa0]
movsd qword [esp + 0x60], xmm1
mov byte [esp + 0x1c], 0x2d
cmp dl, 3
jne 0x42da91
test edi, edi
je 0x42da91
dec edi
movsd xmm2, qword [esp + 0xb0]
mov ecx, edi
movsd xmm4, qword [esp + 0x98]
and ecx, 0xfff
cmp ecx, 8
jb 0x42dae9
lea edx, [ecx - 8]
shr edx, 3
inc edx
mov eax, edx
neg eax
lea ecx, [ecx + eax*8]
nop
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
sub edx, 1
jne 0x42dac0
mov dl, byte [esp + 0x17]
test ecx, ecx
jle 0x42daf9
nop dword [eax]
dec ecx
mulsd xmm2, xmm4
test ecx, ecx
jg 0x42daf0
cmp dl, 1
jne 0x42db0b
movaps xmm0, xmm2
addsd xmm1, xmm0
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x40], xmm1
xor ecx, ecx
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esp + 0x40]
ucomisd xmm0, qword [esp + 0x80]
mov dword [esp + 0x3c], ecx
lahf
test ah, 0x44
jnp 0x42db4c
mov edi, 0x51d188
lea esi, [ecx + 3]
mov dword [esp + 0x18], edi
jmp 0x42d941
comisd xmm1, xmm3
jbe 0x42dc7d
movsd xmm5, qword [esp + 0xc0]
comisd xmm1, xmm5
movsd xmm6, qword [esp + 0xb8]
movaps xmm3, xmm6
jb 0x42db91
cmp ecx, 0x15e
jg 0x42db8d
mulsd xmm3, xmm5
add ecx, 0x64
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm1, xmm0
jae 0x42db71
mov dword [esp + 0x3c], ecx
movsd xmm5, qword [esp + 0xc8]
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm1, xmm0
jb 0x42dbc3
cmp ecx, 0x15e
jg 0x42dbbf
movaps xmm3, xmm0
add ecx, 0xa
mulsd xmm0, xmm5
comisd xmm1, xmm0
jae 0x42dba7
mov dword [esp + 0x3c], ecx
movsd xmm5, qword [esp + 0x70]
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm1, xmm0
jb 0x42dbf0
cmp ecx, 0x15e
jg 0x42dbec
movaps xmm3, xmm0
inc ecx
mulsd xmm0, xmm5
comisd xmm1, xmm0
jae 0x42dbd6
mov dword [esp + 0x3c], ecx
divsd xmm1, xmm3
movsd xmm0, qword [esp + 0xd0]
comisd xmm0, xmm1
movsd qword [esp + 0x60], xmm1
jbe 0x42dc29
movsd xmm3, qword [esp + 0xd8]
mulsd xmm1, xmm3
sub ecx, 8
comisd xmm0, xmm1
ja 0x42dc12
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x60], xmm1
comisd xmm6, xmm1
jbe 0x42dc45
nop
mulsd xmm1, xmm5
dec ecx
comisd xmm6, xmm1
ja 0x42dc30
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x60], xmm1
cmp ecx, 0x15e
jle 0x42dc83
mov cl, byte [esp + 0x1c]
lea edi, [esp + 0xe0]
xor eax, eax
mov byte [esp + 0xe0], cl
test cl, cl
mov dword [esp + 0x18], edi
setne al
mov dword [esp + eax + 0xe0], 0x666e49
lea esi, [eax + 3]
jmp 0x42d941
movsd xmm5, qword [esp + 0x70]
lea esi, [esp + 0xe0]
cmp dl, 1
je 0x42dcd8
addsd xmm1, xmm2
comisd xmm1, xmm5
movsd qword [esp + 0x60], xmm1
jb 0x42dcae
mulsd xmm1, xmm4
inc ecx
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x60], xmm1
cmp dl, 3
jne 0x42dcd8
cmp byte [esp + 0x1f], 0
sete byte [esp + 0x1e]
cmp ecx, 0xfffffffc
jl 0x42dcd0
cmp ecx, edi
jg 0x42dcd0
mov al, 1
sub edi, ecx
mov byte [esp + 0x17], al
jmp 0x42dce4
mov al, 2
mov byte [esp + 0x17], al
jmp 0x42dce4
mov al, byte [esp + 0x2b]
mov byte [esp + 0x1e], al
mov al, byte [esp + 0x17]
xor edx, edx
cmp al, 2
cmovne edx, ecx
xor eax, eax
test edx, edx
mov dword [esp + 0x40], edx
cmovg eax, edx
cdq
mov ecx, eax
mov dword [esp + 0x20], edx
mov eax, edi
cdq
add ecx, eax
mov eax, dword [esp + 0x2c]
adc dword [esp + 0x20], edx
cdq
add ecx, eax
mov eax, dword [esp + 0x20]
adc eax, edx
add ecx, 0xf
adc eax, 0
js 0x42dd3e
jg 0x42dd22
cmp ecx, 0x46
jbe 0x42dd3e
push eax
push ecx
mov ecx, dword [esp + 0x3c]
call fcn.0042cf20
add esp, 8
mov dword [esp + 0x6c], eax
mov esi, eax
test eax, eax
je case.default.0x42d4a7
movzx eax, byte [esp + 0x2b]
test edi, edi
mov dl, byte [esp + 0x1c]
mov dword [esp + 0x18], esi
lea eax, [eax + eax*4]
lea ecx, [eax*2 + 0x10]
setg al
or al, byte [esp + 0x2b]
or al, byte [esp + 0x1f]
mov dword [esp + 0x20], ecx
mov byte [esp + 0x1f], al
test dl, dl
je 0x42dd71
mov byte [esi], dl
inc esi
mov edx, dword [esp + 0x40]
test edx, edx
jns 0x42dd7f
mov byte [esi], 0x30
inc esi
jmp 0x42ddc5
movsd xmm1, qword [esp + 0x60]
movsd xmm2, qword [esp + 0x70]
nop dword [eax + eax]
test ecx, ecx
jg 0x42dd98
mov al, 0x30
jmp 0x42ddaf
cvttsd2si eax, xmm1
dec ecx
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
mov byte [esi], al
inc esi
sub edx, 1
jns 0x42dd90
mov al, byte [esp + 0x1f]
mov dword [esp + 0x20], ecx
movsd qword [esp + 0x60], xmm1
test al, al
je 0x42ddcd
mov byte [esi], 0x2e
inc esi
inc edx
mov eax, edx
neg eax
test edx, edx
jns 0x42de71
cmp eax, 8
jb 0x42de4f
and eax, 0x80000007
jns 0x42ddeb
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm0, xmmword [0x523e00]
neg eax
movaps xmm3, xmmword [0x523dd0]
xorps xmm1, xmm1
movaps xmmword [esp + 0x80], xmm0
xorps xmm2, xmm2
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x80]
mov dword [esi], eax
add edx, 8
mov dword [esi + 4], eax
psubd xmm1, xmm3
add esi, 8
psubd xmm2, xmm3
cmp edx, dword [esp + 0x40]
jl 0x42de14
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add edi, eax
test edx, edx
jns 0x42de71
neg edx
push edx
push 0x30
push esi
mov dword [esp + 0x4c], edx
call fcn.004e0bd0
add esi, dword [esp + 0x4c]
add esp, 0xc
sub edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
test edi, edi
jle 0x42deaa
dec edi
test ecx, ecx
jg 0x42de7e
mov al, 0x30
jmp 0x42dea3
movsd xmm1, qword [esp + 0x60]
dec ecx
cvttsd2si eax, xmm1
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [esp + 0x70]
movsd qword [esp + 0x60], xmm1
mov byte [esi], al
inc esi
test edi, edi
jg 0x42de75
cmp byte [esp + 0x1e], 0
je 0x42dee5
cmp byte [esp + 0x1f], 0
je 0x42dee5
cmp byte [esi - 1], 0x30
lea eax, [esi - 1]
jne 0x42dece
mov esi, eax
lea eax, [esi - 1]
mov byte [esi], 0
cmp byte [eax], 0x30
je 0x42dec1
cmp byte [esi - 1], 0x2e
jne 0x42dee5
cmp byte [esp + 0x2b], 0
je 0x42dee1
mov byte [esi], 0x30
inc esi
jmp 0x42dee5
dec esi
mov byte [esi], 0
cmp byte [esp + 0x17], 2
jne 0x42df84
mov eax, dword [esp + 0x50]
lea edi, [esi + 2]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], edi
movzx eax, byte [eax + 4]
mov al, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], al
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
test ecx, ecx
mov dword [esp + 0x50], eax
sets cl
lea ecx, [ecx*2 + 0x2b]
mov byte [esi + 1], cl
mov esi, edi
mov edi, dword [esp + 0x50]
cmp eax, 0x64
jl 0x42df55
mov esi, dword [esp + 0x40]
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, cl
add al, 0x30
mov byte [esi], al
inc esi
imul eax, ecx, 0x64
sub edi, eax
mov dword [esp + 0x50], edi
mov eax, 0x66666667
imul edi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, cl
add al, 0x30
mov byte [esi], al
mov al, cl
shl cl, 2
add al, cl
mov ecx, dword [esp + 0x50]
add al, al
sub cl, al
add cl, 0x30
mov byte [esi + 1], cl
add esi, 2
mov ecx, dword [esp + 0x18]
mov byte [esi], 0
sub esi, ecx
cmp byte [esp + 0x3b], 0
je 0x42d93d
mov dl, byte [esp + 0x16]
test dl, dl
jne 0x42e643
mov edi, dword [esp + 0x2c]
cmp esi, edi
jge 0x42e643
mov eax, edi
mov edx, edi
sub eax, esi
mov esi, eax
mov dword [esp + 0x40], eax
cmp edi, esi
jl 0x42dfd3
mov edi, ecx
sub edi, esi
mov al, byte [edi + edx]
mov byte [edx + ecx], al
dec edx
cmp edx, esi
jge 0x42dfc4
mov edi, dword [esp + 0x2c]
xor eax, eax
cmp byte [esp + 0x1c], al
setne al
test esi, esi
je 0x42dfee
push esi
add eax, ecx
push 0x30
push eax
call fcn.004e0bd0
add esp, 0xc
mov esi, edi
jmp 0x42d93d
cmp byte [esp + 0x1d], 0
jne 0x42e013
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
add ecx, 4
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx - 4]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
xor esi, esi
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + 0x10]
add ecx, esi
cmp ecx, dword [edi + 8]
jb 0x42e85b
mov edx, dword [esp + 0x18]
mov ecx, edi
push esi
call fcn.0042ec20
add esp, 4
jmp 0x42e877
lea edi, [esp + 0xe0]
mov byte [esp + 0xe0], 0x25
mov dword [esp + 0x18], edi
mov esi, 1
jmp 0x42d941
cmp byte [esp + 0x1d], 0
je 0x42e104
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x42e0f2
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
je 0x42e0f2
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x42e09f
cmp byte [ecx + 0xa], 1
jne 0x42e09f
mov edx, dword [ecx + 0x10]
jmp 0x42e0ad
test dl, 1
jne 0x42e0f2
mov dl, 1
call fcn.0044c650
mov edx, eax
mov esi, 1
test edx, edx
je 0x42e0f2
mov cl, byte [edx]
mov byte [esp + 0xe0], cl
movsx ecx, cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x42e1cd
mov cl, byte [edx + esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x42e1cd
mov byte [esp + esi + 0xe0], cl
inc esi
cmp esi, 4
jl 0x42e0d1
jmp 0x42e1cd
mov byte [esp + 0xe0], 0
mov esi, 1
jmp 0x42e1cd
mov ecx, dword [esp + 0x24]
add ecx, 4
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx - 4]
cmp ecx, 0x80
jae 0x42e12b
mov byte [esp + 0xe0], cl
mov esi, 1
jmp 0x42e1cd
mov eax, ecx
cmp ecx, 0x800
jae 0x42e157
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 0x42e1cd
mov dl, cl
and dl, 0x3f
add dl, 0x80
cmp ecx, 0x10000
jae 0x42e193
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 0x42e1cd
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
cmp edi, 1
jle 0x42e29d
mov eax, dword [esp + 0x2c]
sub eax, edi
mov edx, eax
inc eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], eax
cmp eax, 1
jle 0x42e253
cmp byte [esp + 0x16], 0
jne 0x42e253
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
mov eax, edx
cdq
add dword [esp + 0x20], eax
adc ecx, edx
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
js 0x42e233
jg 0x42e21a
cmp dword [esp + 0x20], eax
jb 0x42e233
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
call fcn.0042ea00
mov dword [esp + 0x54], eax
test eax, eax
jle 0x42e24d
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x54]
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 0x42e237
mov edi, dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x34]
dec edi
mov edx, dword [ecx + 0x10]
add edx, esi
cmp edx, dword [ecx + 8]
jb 0x42e274
push esi
lea edx, [esp + 0xe4]
call fcn.0042ec20
add esp, 4
jmp 0x42e294
test esi, esi
je 0x42e298
push esi
lea eax, [esp + 0xe4]
mov dword [ecx + 0x10], edx
push eax
mov eax, dword [ecx + 4]
sub eax, esi
add eax, edx
push eax
call fcn.004df730
add esp, 0xc
mov ecx, dword [esp + 0x34]
sub edi, 1
jne 0x42e258
lea ecx, [esp + 0xe0]
mov dword [esp + 0x18], ecx
jmp 0x42e605
cmp byte [esp + 0x1d], 0
je 0x42e324
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x42e2c9
xor ecx, ecx
mov dl, 5
mov dword [esp + 0x18], ecx
jmp 0x42e336
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x42e2e1
mov dword [esp + 0x18], ecx
mov dl, 5
jmp 0x42e336
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x42e304
cmp byte [ecx + 0xa], 1
jne 0x42e304
mov ecx, dword [ecx + 0x10]
mov dl, 5
mov dword [esp + 0x18], ecx
jmp 0x42e336
test dl, 1
je 0x42e313
xor ecx, ecx
mov dl, 5
mov dword [esp + 0x18], ecx
jmp 0x42e336
mov dl, 1
call fcn.0044c650
mov ecx, eax
mov dword [esp + 0x18], eax
mov dl, 5
jmp 0x42e336
mov ecx, dword [esp + 0x24]
add ecx, 4
mov dword [esp + 0x24], ecx
mov ecx, dword [ecx - 4]
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x42e348
mov ecx, 0x51274f
mov dword [esp + 0x18], ecx
jmp 0x42e3c5
cmp dl, 6
jne 0x42e3c5
mov esi, dword [esp + 0x34]
cmp dword [esi + 0x10], 0
jne 0x42e3c1
cmp dword [esi + 0xc], 0
je 0x42e3c1
cmp dword [esp + 0x2c], 0
jne 0x42e3c1
test edi, edi
jns 0x42e3c1
cmp byte [esi + 0x14], 0
jne 0x42e3c1
mov eax, dword [esi]
mov dword [esi + 4], ecx
test eax, eax
je 0x42e390
cmp ecx, dword [eax + 0x138]
jb 0x42e390
cmp ecx, dword [eax + 0x13c]
jae 0x42e390
movzx eax, word [eax + 0x11c]
jmp 0x42e39e
push ecx
call dword [0x540ae8]
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esi + 8], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e3a4
or byte [esi + 0x15], 4
sub ecx, edx
and ecx, 0x7fffffff
mov dword [esi + 0x10], ecx
xor esi, esi
jmp 0x42d93d
mov dword [esp + 0x6c], ecx
test edi, edi
js 0x42e424
cmp byte [esp + 0x2b], 0
je 0x42e405
mov esi, ecx
test edi, edi
jle 0x42e3fe
mov al, byte [esi]
dec edi
test al, al
je 0x42e3fe
inc esi
cmp al, 0xc0
jb 0x42e3fa
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x42e3fa
nop word [eax + eax]
mov al, byte [esi + 1]
inc esi
and al, 0xc0
cmp al, 0x80
je 0x42e3f0
test edi, edi
jg 0x42e3d6
sub esi, ecx
jmp 0x42e605
xor esi, esi
test edi, edi
jle 0x42d93d
nop
cmp byte [esi + ecx], 0
je 0x42d93d
inc esi
cmp esi, edi
jl 0x42e410
jmp 0x42d93d
mov esi, ecx
lea edx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x42e430
sub esi, edx
and esi, 0x7fffffff
jmp 0x42e5fa
cmp dl, 0xe
mov eax, 0x27
mov ecx, 0x22
cmove eax, ecx
cmp byte [esp + 0x1d], 0
mov dword [esp + 0x30], eax
je 0x42e4bd
mov esi, dword [esp + 0x58]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x42e474
mov dword [esp + 0x20], 0
jmp 0x42e4d7
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x42e488
xor esi, esi
jmp 0x42e4cb
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x42e4a5
cmp byte [ecx + 0xa], 1
jne 0x42e4a5
mov esi, dword [ecx + 0x10]
jmp 0x42e4cb
test dl, 1
je 0x42e4ae
xor esi, esi
jmp 0x42e4cb
mov dl, 1
call fcn.0044c650
mov esi, eax
mov dword [esp + 0x3c], eax
jmp 0x42e4cf
mov ecx, dword [esp + 0x24]
add ecx, 4
mov dword [esp + 0x24], ecx
mov esi, dword [ecx - 4]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], esi
test esi, esi
jne 0x42e4ed
cmp byte [esp + 0x17], 0xa
mov esi, str.NULL
mov eax, str._NULL_
cmovne esi, eax
mov dword [esp + 0x3c], esi
xor eax, eax
xor edx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
test edi, edi
je 0x42e54c
nop dword [eax]
mov cl, byte [edx + esi]
test cl, cl
je 0x42e548
inc eax
cmp cl, byte [esp + 0x30]
cmovne eax, dword [esp + 0x50]
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x50], eax
je 0x42e542
and cl, 0xc0
cmp cl, 0xc0
jne 0x42e542
lea ecx, [esi + 1]
add ecx, edx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x42e53e
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
and al, 0xc0
inc edx
cmp al, 0x80
je 0x42e531
mov eax, dword [esp + 0x50]
inc edx
sub edi, 1
jne 0x42e500
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x20], 0
je 0x42e561
cmp byte [esp + 0x17], 0xa
jne 0x42e561
mov edi, 1
jmp 0x42e563
xor edi, edi
add eax, 3
mov dword [esp + 0x20], edi
add eax, edx
cmp eax, 0x46
jle 0x42e598
mov ecx, dword [esp + 0x34]
cdq
push edx
push eax
call fcn.0042cf20
add esp, 8
mov dword [esp + 0x6c], eax
mov dword [esp + 0x18], eax
mov ecx, eax
test eax, eax
je case.default.0x42d4a7
mov edx, dword [esp + 0x4c]
jmp 0x42e5a3
lea ecx, [esp + 0xe0]
mov dword [esp + 0x18], ecx
xor esi, esi
test edi, edi
je 0x42e5b4
mov eax, dword [esp + 0x30]
mov esi, 1
mov byte [ecx], al
xor eax, eax
test edx, edx
jle 0x42e5ea
mov edi, dword [esp + 0x3c]
nop
mov dl, byte [eax + edi]
mov byte [esi + ecx], dl
inc esi
cmp dl, byte [esp + 0x30]
mov byte [esp + 0x3b], dl
mov edx, dword [esp + 0x4c]
jne 0x42e5e1
mov dl, byte [esp + 0x3b]
mov byte [esi + ecx], dl
inc esi
mov edx, dword [esp + 0x4c]
inc eax
cmp eax, edx
jl 0x42e5c0
mov edi, dword [esp + 0x20]
test edi, edi
je 0x42e5f6
mov eax, dword [esp + 0x30]
mov byte [esi + ecx], al
inc esi
mov byte [esi + ecx], 0
cmp byte [esp + 0x2b], 0
je 0x42d93d
mov edi, dword [esp + 0x2c]
test edi, edi
jle 0x42d93d
lea edx, [esi - 1]
test edx, edx
js 0x42d93d
nop dword [eax]
lea eax, [edx + ecx]
mov al, byte [eax]
lea ecx, [edi + 1]
and al, 0xc0
cmp al, 0x80
cmovne ecx, edi
sub edx, 1
mov edi, ecx
mov ecx, dword [esp + 0x18]
jns 0x42e620
mov dword [esp + 0x2c], edi
jmp 0x42d93d
mov edi, dword [esp + 0x18]
jmp 0x42d945
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x10]
add ecx, esi
cmp ecx, dword [edx + 8]
jb 0x42e66d
mov edx, edi
mov edi, dword [esp + 0x34]
push esi
mov ecx, edi
call fcn.0042ec20
add esp, 4
jmp 0x42e690
test esi, esi
je 0x42e68c
push esi
push edi
mov edi, dword [esp + 0x3c]
mov dword [edx + 0x10], ecx
mov eax, dword [edi + 4]
sub eax, esi
add eax, ecx
push eax
call fcn.004df730
add esp, 0xc
jmp 0x42e690
mov edi, dword [esp + 0x34]
cmp byte [esp + 0x16], 0
je 0x42e877
mov eax, dword [edi + 0x10]
xor ecx, ecx
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov eax, esi
cdq
add dword [esp + 0x20], eax
mov eax, dword [edi + 8]
adc ecx, edx
js 0x42e6d1
jg 0x42e6be
cmp dword [esp + 0x20], eax
jb 0x42e6d1
mov edx, esi
mov ecx, edi
call fcn.0042ea00
mov esi, eax
test esi, esi
jle 0x42e877
mov ecx, dword [edi + 0x10]
dec esi
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test esi, esi
jg 0x42e6d1
jmp 0x42e877
mov edi, dword [esp + 0x34]
test byte [edi + 0x15], 1
je case.default.0x42d4a7
mov ecx, dword [esp + 0x24]
add ecx, 4
mov dword [esp + 0x24], ecx
mov eax, dword [ecx - 4]
test eax, eax
je 0x42e741
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x42e741
mov esi, dword [edi + 0x10]
mov edx, dword [eax]
add esi, ecx
push ecx
cmp esi, dword [edi + 8]
jb 0x42e72d
mov ecx, edi
call fcn.0042ec20
add esp, 4
xor esi, esi
jmp 0x42e019
mov eax, dword [edi + 4]
sub eax, ecx
mov dword [edi + 0x10], esi
push edx
add eax, esi
push eax
call fcn.004df730
add esp, 0xc
xor esi, esi
jmp 0x42e019
mov edi, dword [esp + 0x34]
test byte [edi + 0x15], 1
je case.default.0x42d4a7
mov ecx, dword [esp + 0x24]
lea eax, [ecx + 8]
mov dword [esp + 0x60], eax
mov eax, dword [eax - 4]
lea edx, [eax + eax*8]
mov eax, dword [ecx]
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], eax
mov edx, dword [eax + edx*8 + 0xc]
test edx, edx
je 0x42e7ea
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e780
sub ecx, esi
mov esi, dword [edi + 0x10]
and ecx, 0x3fffffff
add esi, ecx
cmp esi, dword [edi + 8]
jb 0x42e7a6
push ecx
mov ecx, edi
call fcn.0042ec20
add esp, 4
jmp 0x42e7bf
test ecx, ecx
je 0x42e7bf
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], esi
push edx
add eax, esi
push eax
call fcn.004df730
add esp, 0xc
mov ecx, dword [edi + 0x10]
inc ecx
cmp ecx, dword [edi + 8]
jb 0x42e7db
push 1
mov edx, 0x51aa54
mov ecx, edi
call fcn.0042ec20
add esp, 4
jmp 0x42e7e6
mov eax, dword [edi + 4]
mov dword [edi + 0x10], ecx
mov byte [eax + ecx - 1], 0x2e
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
mov edx, dword [eax + edx*8 + 0x10]
test edx, edx
jne 0x42e7fa
xor ecx, ecx
jmp 0x42e80f
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e800
sub ecx, esi
and ecx, 0x3fffffff
mov esi, dword [edi + 0x10]
add esi, ecx
cmp esi, dword [edi + 8]
jb 0x42e833
push ecx
mov ecx, edi
call fcn.0042ec20
mov ecx, dword [esp + 0x64]
add esp, 4
xor esi, esi
mov dword [esp + 0x24], ecx
jmp 0x42e019
test ecx, ecx
je 0x42e84c
mov eax, dword [edi + 4]
push ecx
sub eax, ecx
mov dword [edi + 0x10], esi
push edx
add eax, esi
push eax
call fcn.004df730
add esp, 0xc
mov ecx, dword [esp + 0x60]
xor esi, esi
mov dword [esp + 0x24], ecx
jmp 0x42e019
test esi, esi
je 0x42e877
mov eax, dword [edi + 4]
push esi
push dword [esp + 0x1c]
sub eax, esi
mov dword [edi + 0x10], ecx
add eax, ecx
push eax
call fcn.004df730
add esp, 0xc
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x42e8c4
mov ecx, dword [edi]
test ecx, ecx
je 0x42e8b5
cmp dword [ecx + 0x1e8], 0
je 0x42e895
call fcn.0042c6f0
jmp 0x42e8be
cmp edx, dword [ecx + 0x138]
jb 0x42e8b5
cmp edx, dword [ecx + 0x13c]
jae 0x42e8b5
mov eax, dword [ecx + 0x134]
mov dword [edx], eax
mov dword [ecx + 0x134], edx
jmp 0x42e8be
push edx
call fcn.0042c680
add esp, 4
xor eax, eax
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x24]
inc esi
movsx eax, byte [esi]
test eax, eax
jne 0x42d0c4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.004ddc19
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x10]
inc ecx
cmp ecx, dword [edi + 8]
jb 0x42e91c
push 1
mov edx, 0x51ce48
mov ecx, edi
call fcn.0042ec20
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.004ddc19
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 4]
mov dword [edi + 0x10], ecx
mov byte [eax + ecx - 1], 0x25
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004ddc19
mov esp, ebp
pop ebp
ret