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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x134
mov eax, dword [0x725fec]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov eax, edx
mov edx, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [esp + 0x7c], eax
xor ecx, ecx
mov dword [esp + 0x58], edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], ecx
test eax, eax
je 0x481419
mov cl, al
and cl, 2
mov byte [esp + 0x1b], cl
je 0x481411
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x28], esi
and al, 1
mov dword [esp + 0x7c], eax
jmp 0x481421
mov byte [esp + 0x7c], cl
mov byte [esp + 0x1b], cl
movsx eax, byte [edx]
test eax, eax
je case.default.0x4817db
movsd xmm0, qword [0x6f3800]
movsd xmm5, qword [0x6f3638]
movsd qword [esp + 0xb0], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [0x6f3620]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x6f3618]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [0x6f3628]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [0x6f36f0]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [0x6f36d0]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [0x6f3610]
movsd qword [esp + 0xe0], xmm0
movsd xmm0, qword [0x6f36b0]
movsd qword [esp + 0x98], xmm5
movsd qword [esp + 0xe8], xmm0
cmp eax, 0x25
je 0x481531
mov esi, edx
mov dword [esp + 0x24], esi
nop dword [eax]
mov al, byte [edx + 1]
inc edx
test al, al
je 0x4814ec
cmp al, 0x25
jne 0x4814e0
mov eax, dword [edi + 0xc]
mov dword [esp + 0x4c], edx
sub edx, esi
push edx
lea ecx, [edx + eax]
cmp ecx, dword [edi + 0x10]
jl 0x48150c
mov edx, esi
mov ecx, edi
call fcn.00482b30
add esp, 4
jmp 0x481520
mov eax, dword [edi + 8]
sub eax, edx
mov dword [edi + 0xc], ecx
add eax, ecx
push esi
push eax
call fcn.006435e0
add esp, 0xc
mov edx, dword [esp + 0x4c]
cmp byte [edx], 0
je case.default.0x4817db
mov esi, dword [esp + 0x28]
movsx ecx, byte [edx + 1]
inc edx
mov dword [esp + 0x4c], edx
test ecx, ecx
je 0x482936
xor al, al
mov byte [esp + 0x4b], al
mov byte [esp + 0x31], al
mov byte [esp + 0x30], al
mov byte [esp + 0x1a], al
mov byte [esp + 0x4a], al
mov byte [esp + 0x19], al
nop dword [eax]
lea eax, [ecx - 0x20]
cmp eax, 0x10
ja case.0x48156f.34
movzx eax, byte [eax + 0x4829a8]
jmp dword [eax*4 + 0x48298c]
mov byte [esp + 0x19], 1
jmp 0x48159e
mov byte [esp + 0x4a], 1
jmp 0x48159e
mov byte [esp + 0x1a], 1
jmp 0x48159e
mov byte [esp + 0x30], 1
jmp 0x48159e
mov byte [esp + 0x31], 1
jmp 0x48159e
mov byte [esp + 0x4b], 1
movsx ecx, byte [edx + 1]
inc edx
test ecx, ecx
jne 0x481560
mov dword [esp + 0x4c], edx
cmp ecx, 0x2a
jne 0x48163d
cmp byte [esp + 0x1b], 0
je 0x4815fc
mov eax, dword [esp + 0x44]
mov esi, dword [eax + 4]
cmp dword [eax], esi
jg 0x4815d9
mov esi, dword [esp + 0x28]
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x60]
jmp 0x481605
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x44]
mov ecx, dword [eax + esi*4]
lea eax, [esi + 1]
mov dword [edx + 4], eax
call fcn.0049c4d0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x4c]
jmp 0x481605
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
test eax, eax
jns 0x481632
mov byte [esp + 0x19], 1
cmp eax, 0x80000001
jl 0x48162a
movsx ecx, byte [edx + 1]
neg eax
inc edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], edx
jmp 0x481676
mov dword [esp + 0x2c], 0
movsx ecx, byte [edx + 1]
inc edx
mov dword [esp + 0x4c], edx
jmp 0x481676
xor eax, eax
cmp ecx, 0x30
jl 0x48166d
mov edi, eax
cmp ecx, 0x39
jg 0x48165d
lea edi, [edi + edi*4]
inc edx
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [edx]
cmp ecx, 0x30
jge 0x481646
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], edx
and eax, 0x7fffffff
mov dword [esp + 0x2c], eax
cmp ecx, 0x2e
jne 0x481723
movsx ecx, byte [edx + 1]
inc edx
mov dword [esp + 0x4c], edx
cmp ecx, 0x2a
jne 0x4816f6
cmp byte [esp + 0x1b], 0
je 0x4816cf
mov eax, dword [esp + 0x44]
mov esi, dword [eax + 4]
cmp dword [eax], esi
jg 0x4816ae
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov esi, dword [esp + 0x60]
jmp 0x4816d9
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x44]
mov ecx, dword [eax + esi*4]
lea eax, [esi + 1]
mov dword [edx + 4], eax
call fcn.0049c4d0
mov dword [esp + 0x64], edx
mov esi, eax
mov edx, dword [esp + 0x4c]
jmp 0x4816d9
add esi, 4
mov dword [esp + 0x28], esi
mov esi, dword [esi - 4]
movsx ecx, byte [edx + 1]
inc edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], edx
test esi, esi
jns 0x48172a
cmp esi, 0x80000001
jl 0x481723
neg esi
jmp 0x481726
xor esi, esi
cmp ecx, 0x30
jl 0x48171b
nop dword [eax]
cmp ecx, 0x39
jg 0x481717
lea esi, [esi + esi*4]
inc edx
lea esi, [esi - 0x18]
lea esi, [ecx + esi*2]
movsx ecx, byte [edx]
cmp ecx, 0x30
jge 0x481700
mov dword [esp + 0x4c], edx
and esi, 0x7fffffff
jmp 0x481726
or esi, 0xffffffff
mov dword [esp + 0x40], esi
mov dword [esp + 0x50], edx
mov eax, edx
cmp ecx, 0x6c
jne 0x481766
inc edx
mov byte [esp + 0x33], 1
mov dl, byte [edx]
cmp dl, cl
jne 0x481746
mov al, byte [eax + 2]
jmp 0x481748
mov al, dl
cmp dl, 0x6c
movsx ecx, al
sete byte [esp + 0x32]
xor eax, eax
cmp dl, 0x6c
sete al
inc eax
add eax, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
jmp 0x481770
mov byte [esp + 0x32], 0
mov byte [esp + 0x33], 0
xor eax, eax
mov dword [esp + 0x5c], 0x6e01c8
mov byte [esp + 0x23], 0
mov edx, 0x6e01c8
mov dword [esp + 0x1c], eax
movsx eax, byte [edx]
cmp ecx, eax
je 0x4817a4
inc dword [esp + 0x1c]
add edx, 6
cmp edx, 0x6e0252
jl 0x481788
mov dl, byte [esp + 0x23]
jmp 0x4817ce
cmp byte [esp + 0x7c], 0
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*2]
lea eax, [eax*2 + 0x6e01c8]
mov dword [esp + 0x5c], eax
jne 0x4817c7
test byte [eax + 2], 2
jne case.default.0x4817db
mov dl, byte [eax + 3]
mov byte [esp + 0x23], dl
movzx eax, dl
dec eax
cmp eax, 0xf
ja case.default.0x4817db
jmp dword [eax*4 + 0x4829bc]
xor al, al
mov cl, 1
jmp 0x4817f0
mov al, byte [esp + 0x32]
mov cl, byte [esp + 0x33]
mov edx, dword [esp + 0x5c]
test byte [edx + 2], 1
je 0x4818cb
cmp byte [esp + 0x1b], 0
je 0x481852
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x48183b
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
cmp byte [esp + 0x4a], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
je 0x4818bb
mov cl, 0x2b
jmp 0x481950
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
call fcn.0049c4d0
jmp 0x481880
test al, al
je 0x481869
mov ecx, dword [esp + 0x28]
add ecx, 8
mov dword [esp + 0x28], ecx
mov eax, dword [ecx - 8]
mov edx, dword [ecx - 4]
jmp 0x481880
mov eax, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x28], eax
test cl, cl
jne 0x48187c
mov dword [esp + 0x28], eax
mov eax, dword [eax - 4]
cdq
test edx, edx
jg 0x481821
jl 0x48188a
test eax, eax
jae 0x481821
test eax, eax
jne 0x4818a5
cmp edx, 0x80000000
jne 0x4818a5
mov dword [esp + 0x38], edx
mov cl, 0x2d
mov dword [esp + 0x34], eax
jmp 0x481950
neg eax
mov cl, 0x2d
mov dword [esp + 0x34], eax
adc edx, 0
neg edx
mov dword [esp + 0x38], edx
jmp 0x481950
mov cl, byte [esp + 0x1a]
neg cl
sbb cl, cl
and cl, 0x20
jmp 0x481950
cmp byte [esp + 0x1b], 0
je 0x481917
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x4818f8
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
jmp 0x48194e
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
call fcn.0049c4d0
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
jmp 0x48194e
test al, al
je 0x48192e
mov ecx, dword [esp + 0x28]
add ecx, 8
mov dword [esp + 0x28], ecx
mov eax, dword [ecx - 8]
mov edx, dword [ecx - 4]
jmp 0x481946
mov eax, dword [esp + 0x28]
xor edx, edx
add eax, 4
mov dword [esp + 0x28], eax
test cl, cl
jne 0x481943
mov dword [esp + 0x28], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
xor cl, cl
or eax, edx
mov byte [esp + 0x1a], cl
jne 0x48195c
mov byte [esp + 0x30], al
cmp byte [esp + 0x4b], 0
je 0x481979
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x2c]
setne al
sub ecx, eax
cmp esi, ecx
cmovl esi, ecx
mov dword [esp + 0x40], esi
cmp esi, 0x3c
jge 0x481994
mov esi, 0x46
lea eax, [esp + 0xf0]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x50], eax
jmp 0x4819be
add esi, 0xa
mov eax, esi
mov dword [esp + 0x1c], esi
cdq
push edx
push eax
call fcn.00480960
mov ecx, eax
mov dword [esp + 0x58], eax
add esp, 8
mov dword [esp + 0x78], ecx
test ecx, ecx
je 0x482916
mov edx, dword [esp + 0x38]
dec esi
add esi, eax
cmp byte [esp + 0x23], 0x10
mov dword [esp + 0x24], esi
jne 0x481a31
push 0
push 0xa
push edx
push dword [esp + 0x40]
call fcn.00681740
mov dword [esp + 0x80], eax
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x34]
add ecx, ecx
sub eax, ecx
mov dword [esp + 0x24], eax
cmp eax, 4
jge 0x481a0f
push 0
push 0xa
push edx
push dword [esp + 0x8c]
call fcn.00681ae0
cmp eax, 1
jne 0x481a13
test edx, edx
jne 0x481a13
xor ecx, ecx
jmp 0x481a17
mov ecx, dword [esp + 0x24]
mov al, byte [ecx*2 + 0x6e05e9]
mov byte [esi - 1], al
sub esi, 2
mov al, byte [ecx*2 + str.thstndrd]
mov dword [esp + 0x24], esi
mov byte [esi], al
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
movzx eax, byte [ecx + 4]
add eax, 0x6de648
mov dword [esp + 0x60], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x8c], eax
push eax
push ecx
push edx
push esi
dec edi
call fcn.006816a0
mov dword [esp + 0x3c], ebx
mov esi, eax
mov eax, dword [esp + 0x60]
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x80]
mov byte [edi], al
mov eax, dword [esp + 0x8c]
test edx, edx
ja 0x481a65
jb 0x481a96
test esi, esi
jne 0x481a65
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
sub eax, esi
sub eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x24]
add eax, edi
mov edi, dword [esp + 0x58]
test eax, eax
jle 0x481ac4
dec ecx
dec eax
mov byte [ecx], 0x30
test eax, eax
jg 0x481ab7
mov dword [esp + 0x24], ecx
mov dl, byte [esp + 0x1a]
test dl, dl
je 0x481ad3
dec ecx
mov dword [esp + 0x24], ecx
mov byte [ecx], dl
cmp byte [esp + 0x30], 0
je 0x481b03
mov edx, dword [esp + 0x5c]
mov al, byte [edx + 5]
test al, al
je 0x481b03
movzx eax, al
add eax, 0x6ddc3c
mov dl, byte [eax]
test dl, dl
je 0x481b03
dec ecx
lea eax, [eax + 1]
mov byte [ecx], dl
mov dl, byte [eax]
test dl, dl
jne 0x481af3
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
sub esi, ecx
dec esi
add esi, eax
jmp 0x481cec
cmp byte [esp + 0x1b], 0
je 0x481bc9
mov edi, dword [esp + 0x44]
mov edx, dword [edi + 4]
cmp dword [edi], edx
jle 0x481bb4
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, 8
je 0x481b52
movsd xmm2, qword [ecx]
mov dl, byte [esp + 0x23]
movsd qword [esp + 0x60], xmm2
jmp 0x481bdf
test al, 4
je 0x481b6f
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.006824f0
mov dl, byte [esp + 0x23]
movaps xmm2, xmm0
movsd qword [esp + 0x60], xmm0
jmp 0x481bdf
test al, 0x12
je 0x481bb4
movzx eax, byte [ecx + 0xa]
lea edx, [esp + 0xa0]
movsd xmm2, qword [esp + 0x90]
push eax
push dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
movsd qword [esp + 0xa8], xmm2
call fcn.00483ad0
movsd xmm2, qword [esp + 0xa8]
add esp, 8
mov dl, byte [esp + 0x23]
movsd qword [esp + 0x60], xmm2
jmp 0x481bdf
movsd xmm2, qword [esp + 0x90]
mov dl, byte [esp + 0x23]
movsd qword [esp + 0x60], xmm2
jmp 0x481bdf
mov ecx, dword [esp + 0x28]
add ecx, 8
mov dword [esp + 0x28], ecx
movsd xmm2, qword [ecx - 8]
movsd qword [esp + 0x60], xmm2
movsd xmm3, qword [esp + 0x90]
test esi, esi
mov eax, 6
cmovs esi, eax
comisd xmm3, xmm2
mov dword [esp + 0x40], esi
jbe 0x481c0e
xorps xmm2, xmmword [esp + 0xb0]
mov dh, 0x2d
movsd qword [esp + 0x60], xmm2
jmp 0x481c24
cmp byte [esp + 0x4a], 0
je 0x481c19
mov dh, 0x2b
jmp 0x481c24
mov dh, byte [esp + 0x1a]
neg dh
sbb dh, dh
and dh, 0x20
mov byte [esp + 0x1a], dh
cmp dl, 4
jne 0x481c36
test esi, esi
jle 0x481c36
dec esi
mov dword [esp + 0x40], esi
movsd xmm1, qword [esp + 0xc0]
and esi, 0xfff
movsd xmm4, qword [esp + 0xa8]
cmp esi, 8
jb 0x481c86
lea ecx, [esi - 8]
shr ecx, 3
inc ecx
mov eax, ecx
neg eax
lea esi, [esi + eax*8]
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
sub ecx, 1
jne 0x481c61
test esi, esi
jle 0x481c99
nop word [eax + eax]
dec esi
mulsd xmm1, xmm4
test esi, esi
jg 0x481c90
cmp dl, 2
jne 0x481cab
movaps xmm0, xmm1
addsd xmm2, xmm0
movsd qword [esp + 0x60], xmm2
movsd qword [esp + 0x50], xmm2
xor edi, edi
movsd xmm0, qword [esp + 0x50]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esp + 0x50]
ucomisd xmm0, qword [esp + 0x80]
mov dword [esp + 0x38], edi
lahf
test ah, 0x44
jnp 0x481d53
mov dword [esp + 0x24], 0x6ede68
mov esi, 3
mov edi, dword [esp + 0x58]
mov al, byte [esp + 0x19]
mov ecx, dword [esp + 0x2c]
sub ecx, esi
mov dword [esp + 0x2c], ecx
test ecx, ecx
jle 0x482812
test al, al
jne 0x482812
mov eax, ecx
mov dword [esp + 0x50], ecx
cdq
mov dword [esp + 0x1c], eax
mov ecx, edx
mov eax, dword [edi + 0xc]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [edi + 0x10]
adc ecx, edx
cdq
cmp ecx, edx
jl 0x4827f6
jg 0x481d39
cmp dword [esp + 0x1c], eax
jb 0x4827f6
mov edx, dword [esp + 0x2c]
mov ecx, edi
call fcn.00482a00
mov edx, eax
test edx, edx
jle 0x482812
jmp 0x482800
comisd xmm2, xmm3
jbe 0x481e89
movsd xmm5, qword [esp + 0xd0]
comisd xmm2, xmm5
movsd xmm6, qword [esp + 0xc8]
movaps xmm3, xmm6
jb 0x481d98
cmp edi, 0x15e
jg 0x481d94
mulsd xmm3, xmm5
add edi, 0x64
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm2, xmm0
jae 0x481d78
mov dword [esp + 0x38], edi
movsd xmm5, qword [esp + 0xd8]
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm2, xmm0
jb 0x481dcc
nop
cmp edi, 0x15e
jg 0x481dc8
movaps xmm3, xmm0
add edi, 0xa
mulsd xmm0, xmm5
comisd xmm2, xmm0
jae 0x481db0
mov dword [esp + 0x38], edi
movsd xmm5, qword [esp + 0x98]
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm2, xmm0
jb 0x481dfc
cmp edi, 0x15e
jg 0x481df8
movaps xmm3, xmm0
inc edi
mulsd xmm0, xmm5
comisd xmm2, xmm0
jae 0x481de2
mov dword [esp + 0x38], edi
divsd xmm2, xmm3
movsd xmm0, qword [esp + 0xe0]
comisd xmm0, xmm2
movsd qword [esp + 0x60], xmm2
jbe 0x481e37
movsd xmm3, qword [esp + 0xe8]
nop
mulsd xmm2, xmm3
sub edi, 8
comisd xmm0, xmm2
ja 0x481e20
mov dword [esp + 0x38], edi
movsd qword [esp + 0x60], xmm2
comisd xmm6, xmm2
jbe 0x481e55
nop dword [eax]
mulsd xmm2, xmm5
dec edi
comisd xmm6, xmm2
ja 0x481e40
mov dword [esp + 0x38], edi
movsd qword [esp + 0x60], xmm2
cmp edi, 0x15e
jle 0x481e92
xor eax, eax
mov byte [esp + 0xf0], dh
test dh, dh
lea ecx, [esp + 0xf0]
mov dword [esp + 0x24], ecx
setne al
mov dword [esp + eax + 0xf0], 0x666e49
lea esi, [eax + 3]
jmp 0x481ce8
movsd xmm5, qword [esp + 0x98]
lea esi, [esp + 0xf0]
cmp dl, 2
je 0x481ebd
addsd xmm2, xmm1
comisd xmm2, xmm5
movsd qword [esp + 0x60], xmm2
jb 0x481ebd
mulsd xmm2, xmm4
inc edi
mov dword [esp + 0x38], edi
movsd qword [esp + 0x60], xmm2
cmp dl, 4
jne 0x481eef
cmp byte [esp + 0x30], 0
sete byte [esp + 0x33]
cmp edi, 0xfffffffc
jl 0x481ee7
mov eax, dword [esp + 0x40]
cmp edi, eax
jg 0x481ee7
sub eax, edi
mov dl, 2
mov dword [esp + 0x40], eax
mov byte [esp + 0x23], dl
jmp 0x481ef7
mov dl, 3
mov byte [esp + 0x23], dl
jmp 0x481ef7
mov al, byte [esp + 0x31]
mov byte [esp + 0x33], al
xor ecx, ecx
cmp dl, 3
cmovne ecx, edi
xor eax, eax
test ecx, ecx
mov dword [esp + 0x1c], ecx
cmovg eax, ecx
mov ecx, dword [esp + 0x40]
cdq
mov dword [esp + 0x34], eax
mov eax, ecx
mov dword [esp + 0x24], edx
cdq
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
adc dword [esp + 0x24], edx
cdq
add dword [esp + 0x34], eax
adc dword [esp + 0x24], edx
js 0x481f64
mov eax, dword [esp + 0x34]
jg 0x481f3c
cmp eax, 0x37
jbe 0x481f64
mov ecx, dword [esp + 0x24]
add eax, 0xf
adc ecx, 0
push ecx
push eax
call fcn.00480960
mov ecx, eax
add esp, 8
mov dword [esp + 0x78], ecx
mov esi, ecx
test ecx, ecx
je 0x482912
mov ecx, dword [esp + 0x40]
movzx eax, byte [esp + 0x31]
test ecx, ecx
mov dword [esp + 0x24], esi
lea eax, [eax + eax*4]
lea edx, [eax*2 + 0x10]
setg al
or al, byte [esp + 0x31]
or al, byte [esp + 0x30]
mov byte [esp + 0x32], al
mov al, byte [esp + 0x1a]
mov dword [esp + 0x50], edx
test al, al
je 0x481f97
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x1c]
movsd xmm1, qword [esp + 0x60]
movsd xmm5, qword [esp + 0x98]
test eax, eax
jns 0x481fb4
mov byte [esi], 0x30
inc esi
jmp 0x481feb
mov dword [esp + 0x1c], eax
test edx, edx
jg 0x481fc0
mov al, 0x30
jmp 0x481fd7
cvttsd2si eax, xmm1
dec edx
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x1c]
sub eax, 1
mov dword [esp + 0x1c], eax
jns 0x481fb8
mov dword [esp + 0x50], edx
cmp byte [esp + 0x32], 0
je 0x481ff6
mov byte [esi], 0x2e
inc esi
inc eax
mov edi, eax
neg edi
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x38]
test eax, eax
jns 0x4820da
cmp dword [esp + 0x1c], 8
jb 0x4820a7
mov edi, dword [esp + 0x1c]
and edi, reloc.OLEAUT32.dll_VariantInit
jns 0x482027
dec edi
or edi, 0xfffffff8
inc edi
movaps xmm0, xmmword [0x6f37a0]
neg edi
movaps xmm4, xmmword [0x6f3760]
xorps xmm2, xmm2
mov dword [esp + 0x1c], edi
xorps xmm3, xmm3
mov edi, dword [esp + 0x38]
movaps xmmword [esp + 0x60], xmm0
nop word [eax + eax]
movd xmm0, dword [esp + 0x60]
add eax, 8
movd dword [esi], xmm0
psubd xmm2, xmm4
movd xmm0, dword [esp + 0x60]
psubd xmm3, xmm4
movd dword [esi + 4], xmm0
add esi, 8
cmp eax, dword [esp + 0x1c]
jl 0x482050
paddd xmm2, xmm3
mov dword [esp + 0x1c], eax
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd eax, xmm2
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
test eax, eax
jns 0x4820da
neg eax
mov edi, esi
mov ecx, eax
mov dword [esp + 0x1c], eax
mov edx, ecx
mov eax, 0x30303030
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x40]
mov eax, edx
mov edi, dword [esp + 0x38]
add esi, eax
mov edx, dword [esp + 0x50]
sub ecx, eax
test ecx, ecx
jle 0x482107
nop
dec ecx
test edx, edx
jg 0x4820e9
mov al, 0x30
jmp 0x482100
cvttsd2si eax, xmm1
dec edx
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
mov byte [esi], al
inc esi
test ecx, ecx
jg 0x4820e0
cmp byte [esp + 0x33], 0
je 0x482148
cmp byte [esp + 0x32], 0
je 0x482148
cmp byte [esi - 1], 0x30
lea eax, [esi - 1]
jne 0x48212d
nop
mov esi, eax
lea eax, [esi - 1]
mov byte [esi], 0
cmp byte [eax], 0x30
je 0x482120
cmp byte [esi - 1], 0x2e
lea eax, [esi - 1]
jne 0x482148
cmp byte [esp + 0x31], 0
je 0x482143
mov byte [esi], 0x30
inc esi
jmp 0x482148
mov esi, eax
mov byte [esi], 0
cmp byte [esp + 0x23], 3
jne 0x4821e5
mov edx, dword [esp + 0x5c]
movzx eax, byte [edx + 4]
mov al, byte [eax + 0x6de648]
mov byte [esi], al
lea eax, [esi + 2]
mov dword [esp + 0x50], eax
mov eax, edi
cdq
xor eax, edx
sub eax, edx
test edi, edi
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x1c]
sets cl
lea ecx, [ecx*2 + 0x2b]
mov byte [esi + 1], cl
mov esi, dword [esp + 0x50]
cmp eax, 0x64
jl 0x4821b6
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, esi
mov al, cl
add al, 0x30
mov byte [edx], al
lea esi, [edx + 1]
imul eax, ecx, 0x64
sub edi, eax
mov dword [esp + 0x1c], 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 + 0x1c]
add al, al
sub cl, al
add cl, 0x30
mov byte [esi + 1], cl
add esi, 2
mov al, byte [esp + 0x4b]
mov ecx, dword [esp + 0x24]
mov byte [esi], 0
sub esi, ecx
test al, al
mov al, byte [esp + 0x19]
je 0x4827ed
test al, al
jne 0x4827ed
mov eax, dword [esp + 0x2c]
cmp esi, eax
jge 0x481ce8
mov edi, eax
sub edi, esi
mov esi, eax
mov dword [esp + 0x60], edi
mov edx, esi
cmp esi, edi
jl 0x482235
mov esi, ecx
sub esi, edi
mov al, byte [esi + edx]
mov byte [edx + ecx], al
dec edx
cmp edx, edi
jge 0x482226
mov esi, dword [esp + 0x2c]
xor eax, eax
cmp byte [esp + 0x1a], al
setne al
test edi, edi
je 0x481ce8
lea edi, [eax + ecx]
mov ecx, dword [esp + 0x60]
mov edx, ecx
mov eax, 0x30303030
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x481ce8
cmp byte [esp + 0x1b], 0
jne 0x48227f
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0xc]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx - 4]
mov dword [ecx], eax
mov dword [esp + 0x2c], 0
xor esi, esi
jmp 0x481cec
lea eax, [esp + 0xf0]
mov byte [esp + 0xf0], 0x25
mov dword [esp + 0x24], eax
mov esi, 1
jmp 0x481cec
cmp byte [esp + 0x1b], 0
je 0x48230d
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jle 0x482303
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
test ecx, ecx
je 0x482303
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x4822ee
cmp byte [ecx + 0xa], 1
jne 0x4822ee
mov eax, dword [ecx + 0x10]
jmp 0x4822fa
test dl, 1
jne 0x482303
mov dl, 1
call fcn.0049cf10
test eax, eax
je 0x482303
movsx eax, byte [eax]
jmp 0x48231b
mov dword [esp + 0x38], 0
jmp 0x48231f
mov ecx, dword [esp + 0x28]
add ecx, 4
mov dword [esp + 0x28], ecx
mov eax, dword [ecx - 4]
mov dword [esp + 0x38], eax
cmp esi, 1
jle 0x4823fe
mov ecx, dword [esp + 0x2c]
sub ecx, esi
mov eax, ecx
inc ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], ecx
cmp ecx, 1
jle 0x48239a
cmp byte [esp + 0x19], 0
jne 0x48239a
cdq
mov dword [esp + 0x1c], eax
mov ecx, edx
mov eax, dword [edi + 0xc]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [edi + 0x10]
adc ecx, edx
cdq
cmp ecx, edx
jl 0x482375
jg 0x482366
cmp dword [esp + 0x1c], eax
jb 0x482375
mov edx, dword [esp + 0x50]
mov ecx, edi
call fcn.00482a00
mov edx, eax
jmp 0x482379
mov edx, dword [esp + 0x50]
test edx, edx
jle 0x482392
nop dword [eax]
mov ecx, dword [edi + 0xc]
dec edx
mov eax, dword [edi + 8]
mov byte [ecx + eax], 0x20
inc dword [edi + 0xc]
test edx, edx
jg 0x482380
mov dword [esp + 0x2c], 0
dec esi
mov eax, esi
cdq
mov dword [esp + 0x1c], eax
mov ecx, edx
mov eax, dword [edi + 0xc]
cdq
add dword [esp + 0x1c], eax
mov eax, dword [edi + 0x10]
adc ecx, edx
cdq
cmp ecx, edx
jl 0x4823c9
jg 0x4823be
cmp dword [esp + 0x1c], eax
jb 0x4823c9
mov edx, esi
mov ecx, edi
call fcn.00482a00
mov esi, eax
test esi, esi
jle 0x4823fe
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0xc]
dec esi
mov eax, dword [edi + 8]
mov byte [ecx + eax], dl
inc dword [edi + 0xc]
test esi, esi
jg 0x4823d1
lea eax, [esp + 0xf0]
mov byte [esp + 0xf0], dl
mov esi, 1
mov dword [esp + 0x24], eax
jmp 0x481cec
mov edx, dword [esp + 0x38]
lea eax, [esp + 0xf0]
mov esi, 1
mov byte [esp + 0xf0], dl
mov dword [esp + 0x24], eax
jmp 0x481cec
cmp byte [esp + 0x1b], 0
je 0x482485
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x482436
xor ecx, ecx
mov dl, 6
jmp 0x482493
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
test ecx, ecx
jne 0x48244e
mov dl, 6
jmp 0x482493
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x48246d
cmp byte [ecx + 0xa], 1
jne 0x48246d
mov ecx, dword [ecx + 0x10]
mov dl, 6
jmp 0x482493
test dl, 1
je 0x482478
xor ecx, ecx
mov dl, 6
jmp 0x482493
mov dl, 1
call fcn.0049cf10
mov ecx, eax
mov dl, 6
jmp 0x482493
mov ecx, dword [esp + 0x28]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx - 4]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x4824a6
mov ecx, 0x6e1417
mov dword [esp + 0x24], ecx
jmp 0x4824b4
mov eax, dword [esp + 0x78]
cmp dl, 7
cmove eax, ecx
mov dword [esp + 0x78], eax
test esi, esi
js 0x4824da
mov eax, dword [esp + 0x40]
xor esi, esi
test eax, eax
jle 0x481cec
cmp byte [esi + ecx], 0
je 0x481cec
inc esi
cmp esi, eax
jl 0x4824c6
jmp 0x481cec
test ecx, ecx
jne 0x4824e5
xor esi, esi
jmp 0x481cec
mov esi, ecx
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4824f0
sub esi, ecx
and esi, 0x3fffffff
jmp 0x481cec
cmp dl, 0xf
mov eax, 0x27
mov ecx, 0x22
cmove eax, ecx
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x1c], eax
je 0x48257d
mov eax, dword [esp + 0x44]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x482534
mov dword [esp + 0x50], 0
jmp 0x482597
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
test ecx, ecx
je 0x48258b
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x482565
cmp byte [ecx + 0xa], 1
jne 0x482565
mov ecx, dword [ecx + 0x10]
jmp 0x48258b
test dl, 1
je 0x48256e
xor ecx, ecx
jmp 0x48258b
mov dl, 1
call fcn.0049cf10
mov ecx, eax
mov dword [esp + 0x38], eax
jmp 0x48258f
mov ecx, dword [esp + 0x28]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx - 4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x50], ecx
test ecx, ecx
jne 0x4825ad
cmp byte [esp + 0x23], 0xb
mov ecx, str.NULL
mov eax, str._NULL_
cmovne ecx, eax
mov dword [esp + 0x38], ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0x5c], eax
test esi, esi
je 0x4825e9
mov edi, eax
nop dword [eax + eax]
mov cl, byte [edi + ecx]
test cl, cl
je 0x4825dd
inc edi
lea eax, [edx + 1]
cmp cl, byte [esp + 0x1c]
mov ecx, dword [esp + 0x38]
cmovne eax, edx
mov edx, eax
sub esi, 1
jne 0x4825c0
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x50], 0
je 0x4825ff
cmp byte [esp + 0x23], 0xb
mov dword [esp + 0x34], 1
je 0x482607
mov dword [esp + 0x34], 0
lea ecx, [eax + 3]
add ecx, edx
cmp ecx, 0x46
jle 0x482636
mov eax, ecx
cdq
push edx
push eax
call fcn.00480960
add esp, 8
mov dword [esp + 0x78], eax
mov dword [esp + 0x24], eax
mov ecx, eax
test eax, eax
je 0x482916
mov eax, dword [esp + 0x5c]
jmp 0x482641
lea ecx, [esp + 0xf0]
mov dword [esp + 0x24], ecx
xor esi, esi
cmp dword [esp + 0x34], esi
je 0x482654
mov edx, dword [esp + 0x1c]
mov esi, 1
mov byte [ecx], dl
xor edx, edx
test eax, eax
jle 0x48267e
mov edi, dword [esp + 0x5c]
nop
mov eax, dword [esp + 0x38]
mov al, byte [edx + eax]
mov byte [esi + ecx], al
inc esi
cmp al, byte [esp + 0x1c]
jne 0x482675
mov byte [esi + ecx], al
inc esi
inc edx
cmp edx, edi
jl 0x482660
mov edi, dword [esp + 0x58]
cmp dword [esp + 0x34], 0
je 0x48268d
mov eax, dword [esp + 0x1c]
mov byte [esi + ecx], al
inc esi
mov byte [esi + ecx], 0
jmp 0x481cec
mov ecx, dword [esp + 0x28]
add ecx, 4
mov dword [esp + 0x28], ecx
mov edx, dword [ecx - 4]
test edx, edx
je 0x4826bc
mov eax, dword [edx + 4]
test eax, eax
je 0x4826bc
mov edx, dword [edx]
mov ecx, edi
push eax
call fcn.00482b60
add esp, 4
mov dword [esp + 0x2c], 0
xor esi, esi
jmp 0x481cec
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 8]
mov dword [esp + 0x80], eax
mov eax, dword [eax - 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx]
shl edx, 4
mov dword [esp + 0x60], edx
mov dword [esp + 0x50], eax
mov edx, dword [edx + eax + 0xc]
test edx, edx
je 0x482769
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x482700
sub ecx, esi
mov esi, dword [edi + 0xc]
and ecx, 0x3fffffff
add esi, ecx
push ecx
cmp esi, dword [edi + 0x10]
jl 0x482726
mov ecx, edi
call fcn.00482b30
add esp, 4
jmp 0x48273a
mov eax, dword [edi + 8]
sub eax, ecx
mov dword [edi + 0xc], esi
push edx
add eax, esi
push eax
call fcn.006435e0
add esp, 0xc
mov edx, dword [edi + 0xc]
inc edx
cmp edx, dword [edi + 0x10]
jl 0x482756
push 1
mov edx, 0x6ec1f0
mov ecx, edi
call fcn.00482b30
add esp, 4
jmp 0x482765
mov ecx, dword [edi + 8]
mov dword [edi + 0xc], edx
mov al, byte [0x6ec1f0]
mov byte [ecx + edx - 1], al
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
mov edx, dword [edx + eax + 0x10]
test edx, edx
jne 0x482779
xor ecx, ecx
jmp 0x48278f
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x482780
sub ecx, esi
and ecx, 0x3fffffff
mov eax, dword [edi + 0xc]
push ecx
lea esi, [ecx + eax]
cmp esi, dword [edi + 0x10]
jl 0x4827bf
mov ecx, edi
call fcn.00482b30
mov ecx, dword [esp + 0x84]
add esp, 4
mov dword [esp + 0x2c], 0
xor esi, esi
mov dword [esp + 0x28], ecx
jmp 0x481cec
mov eax, dword [edi + 8]
sub eax, ecx
mov dword [edi + 0xc], esi
push edx
add eax, esi
push eax
call fcn.006435e0
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov dword [esp + 0x2c], 0
xor esi, esi
mov dword [esp + 0x28], ecx
jmp 0x481cec
mov edi, dword [esp + 0x58]
jmp 0x481cf0
mov edx, dword [esp + 0x50]
nop word [eax + eax]
mov ecx, dword [edi + 0xc]
dec edx
mov eax, dword [edi + 8]
mov byte [ecx + eax], 0x20
inc dword [edi + 0xc]
test edx, edx
jg 0x482800
mov ecx, dword [edi + 0xc]
add ecx, esi
push esi
cmp ecx, dword [edi + 0x10]
jl 0x48282d
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.00482b30
add esp, 4
jmp 0x482844
mov eax, dword [edi + 8]
push dword [esp + 0x28]
sub eax, esi
mov dword [edi + 0xc], ecx
add eax, ecx
push eax
call fcn.006435e0
add esp, 0xc
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x482897
cmp byte [esp + 0x19], 0
je 0x482897
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0xc]
cdq
add esi, eax
mov eax, dword [edi + 0x10]
adc ecx, edx
cdq
cmp ecx, edx
jl 0x482881
jg 0x48286e
cmp esi, eax
jb 0x482881
mov edx, dword [esp + 0x2c]
mov ecx, edi
call fcn.00482a00
mov edx, eax
test edx, edx
jle 0x482897
jmp 0x482885
mov edx, dword [esp + 0x2c]
mov ecx, dword [edi + 0xc]
dec edx
mov eax, dword [edi + 8]
mov byte [ecx + eax], 0x20
inc dword [edi + 0xc]
test edx, edx
jg 0x482885
mov esi, dword [esp + 0x78]
test esi, esi
je 0x4828fd
cmp dword [0x727250], 0
je 0x4828ed
mov eax, dword [0x7345b0]
test eax, eax
je 0x4828bb
push eax
call dword [0x7272a4]
add esp, 4
push esi
call dword [0x727280]
sub dword [0x734448], eax
add esp, 4
dec dword [0x73446c]
push esi
call dword [0x727278]
mov eax, dword [0x7345b0]
add esp, 4
test eax, eax
je 0x4828f7
push eax
call dword [0x7272ac]
jmp 0x4828f4
push esi
call dword [0x727278]
add esp, 4
xor ecx, ecx
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x4c]
inc edx
movsx eax, byte [edx]
test eax, eax
je case.default.0x4817db
mov esi, dword [esp + 0x28]
jmp 0x4814d1
mov edi, dword [esp + 0x58]
mov byte [edi + 0x18], 1
mov dword [edi + 0x10], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.0063db0b
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0xc]
inc edx
cmp edx, dword [edi + 0x10]
jl 0x482965
push 1
mov edx, 0x6ede64
mov ecx, edi
call fcn.00482b30
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.0063db0b
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
mov dword [edi + 0xc], edx
mov al, byte [0x6ede64]
mov byte [ecx + edx - 1], al
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0063db0b
mov esp, ebp
pop ebp
ret