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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xbc
mov eax, dword [0x510918]
xor eax, esp
mov dword [esp + 0xb8], eax
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 8]
push ebx
movsx eax, byte [edx]
push esi
mov esi, dword [ebp + 0xc]
push edi
xor edi, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], esi
test eax, eax
je case.default.0x453f99
mov dword [esp + 0x6c], 0x4eec28
mov dword [esp + 0x68], 6
mov dword [esp + 0x74], VariantInit
mov dword [esp + 0x58], 0x15e
mov dword [esp + 0x60], 0x64
movsd xmm4, qword [0x4fef58]
cmp eax, 0x25
je 0x453db8
xor eax, eax
inc eax
mov edi, edx
inc edx
mov dword [esp + 0x20], edx
movsx esi, byte [edx]
cmp esi, 0x25
je 0x453d97
test esi, esi
je 0x453d93
inc eax
inc edx
movsx esi, byte [edx]
cmp esi, 0x25
jne 0x453d85
mov dword [esp + 0x20], edx
push eax
mov edx, edi
call fcn.0045495e
pop ecx
test esi, esi
je case.default.0x453f99
movsd xmm4, qword [0x4fef58]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
inc edx
movsx ecx, byte [edx]
test ecx, ecx
je 0x4548f5
xor al, al
mov byte [esp + 0x2a], al
xor eax, eax
mov byte [esp + 0x18], al
mov byte [esp + 0x1a], al
mov byte [esp + 0x17], al
mov byte [esp + 0x2b], al
mov byte [esp + 0x19], al
mov eax, ecx
sub eax, 0x20
je 0x453e1f
dec eax
je 0x453e18
dec eax
dec eax
je 0x453e11
sub eax, 8
je 0x453e0a
dec eax
dec eax
je 0x453e03
sub eax, 3
jne 0x453e2c
mov byte [esp + 0x2a], 1
jmp 0x453e24
mov byte [esp + 0x19], 1
jmp 0x453e24
mov byte [esp + 0x2b], 1
jmp 0x453e24
mov byte [esp + 0x1a], 1
jmp 0x453e24
mov byte [esp + 0x18], 1
jmp 0x453e24
mov byte [esp + 0x17], 1
inc edx
movsx ecx, byte [edx]
test ecx, ecx
jne 0x453de0
xor eax, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
cmp ecx, 0x2a
jne 0x453e5d
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
test eax, eax
jns 0x453e57
neg eax
mov byte [esp + 0x19], 1
mov dword [esp + 0x1c], eax
inc edx
movsx ecx, byte [edx]
jmp 0x453e7c
cmp ecx, 0x30
jl 0x453e80
cmp ecx, 0x39
jg 0x453e78
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc edx
movsx ecx, byte [edx]
cmp ecx, 0x30
jge 0x453e62
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
cmp ecx, 0x2e
jne 0x453ee7
mov eax, dword [esp + 0x20]
xor edx, edx
inc eax
mov dword [esp + 0x2c], edx
movsx ecx, byte [eax]
mov dword [esp + 0x20], eax
cmp ecx, 0x2a
jne 0x453ec1
mov edx, dword [esi]
add esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], edx
test edx, edx
jns 0x453eb3
neg edx
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0x20]
inc esi
mov dword [esp + 0x20], esi
movsx ecx, byte [esi]
jmp 0x453ef2
mov esi, dword [esp + 0x20]
jmp 0x453ee0
cmp ecx, 0x39
jg 0x453ef2
imul edx, edx, 0xa
add ecx, 0xffffffd0
add edx, ecx
inc esi
mov dword [esp + 0x2c], edx
movsx ecx, byte [esi]
mov dword [esp + 0x20], esi
cmp ecx, 0x30
jge 0x453ec7
jmp 0x453ef2
mov esi, dword [esp + 0x20]
or edx, 0xffffffff
mov dword [esp + 0x2c], edx
cmp ecx, 0x6c
jne 0x453f20
inc esi
mov al, 1
movsx ecx, byte [esi]
mov byte [esp + 0x1b], al
mov dword [esp + 0x20], esi
cmp ecx, 0x6c
jne 0x453f18
inc esi
mov byte [esp + 0xe], al
movsx ecx, byte [esi]
mov dword [esp + 0x20], esi
jmp 0x453f2a
xor al, al
mov byte [esp + 0xe], al
jmp 0x453f2a
xor al, al
mov byte [esp + 0xe], al
mov byte [esp + 0x1b], al
mov esi, dword [esp + 0x6c]
xor eax, eax
mov dword [esp + 0x44], esi
mov byte [esp + 0xf], 0
mov dword [esp + 0x24], eax
movsx eax, byte [esi]
cmp ecx, eax
je 0x453f5e
add esi, dword [esp + 0x68]
inc dword [esp + 0x24]
cmp esi, 0x4eecb2
jl 0x453f3d
mov cl, byte [esp + 0xf]
mov esi, dword [esp + 0x44]
jmp 0x453f87
mov esi, dword [esp + 0x24]
imul esi, esi, 6
add esi, 0x4eec28
cmp dword [esp + 0x70], 0
mov dword [esp + 0x44], esi
jne 0x453f80
test byte [esi + 2], 2
jne case.default.0x453f99
mov cl, byte [esi + 3]
mov byte [esp + 0xf], cl
and dword [esp + 0x54], 0
movzx eax, cl
dec eax
cmp eax, 0xf
ja case.default.0x453f99
jmp dword [eax*4 + 0x45491e]
xor al, al
mov cl, 1
jmp 0x453fae
mov al, byte [esp + 0xe]
mov cl, byte [esp + 0x1b]
test byte [esi + 2], 1
je 0x454027
test al, al
je 0x453fcb
mov ecx, dword [esp + 0x10]
add ecx, 8
mov dword [esp + 0x10], ecx
mov eax, dword [ecx - 8]
mov esi, dword [ecx - 4]
jmp 0x453fdc
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov eax, dword [esi - 4]
cdq
mov esi, edx
test esi, esi
jg 0x454009
jl 0x453fe6
test eax, eax
jae 0x454009
test eax, eax
jne 0x453ffa
mov ecx, dword [esp + 0x74]
cmp esi, ecx
jne 0x453ffa
and dword [esp + 0x38], eax
mov esi, ecx
jmp 0x454005
neg eax
adc esi, 0
mov dword [esp + 0x38], eax
neg esi
mov cl, 0x2d
jmp 0x454054
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x38], eax
je 0x454018
mov cl, 0x2b
jmp 0x454054
cmp byte [esp + 0x17], 0
sete cl
dec cl
and cl, 0x20
jmp 0x454054
test al, al
je 0x45403e
mov edx, dword [esp + 0x10]
add edx, 8
mov dword [esp + 0x10], edx
mov eax, dword [edx - 8]
mov esi, dword [edx - 4]
jmp 0x45404e
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov eax, dword [esi - 4]
xor esi, esi
mov dword [esp + 0x38], eax
xor cl, cl
mov edx, dword [esp + 0x38]
mov eax, edx
or eax, esi
mov byte [esp + 0xe], cl
jne 0x454066
mov byte [esp + 0x1a], al
mov al, byte [esp + 0x2a]
test al, al
je 0x45408a
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x1c]
setne al
sub ecx, eax
mov eax, dword [esp + 0x2c]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x2c], eax
jmp 0x45408e
mov eax, dword [esp + 0x2c]
cmp eax, 0x3c
jge 0x4540a4
push 0x46
pop edi
lea eax, [esp + 0x78]
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], eax
jmp 0x4540c8
lea edi, [eax + 0xa]
push edi
mov dword [esp + 0x68], edi
call fcn.004536a2
pop ecx
mov ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], eax
test ecx, ecx
je 0x4548eb
mov edx, dword [esp + 0x38]
dec edi
add edi, eax
cmp byte [esp + 0xf], 0x10
jne 0x45411e
push 0
push 0xa
pop eax
push eax
push esi
push edx
call fcn.004ae980
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], ebx
cmp ecx, 4
jge 0x454100
push 0
push 0xa
push edx
push eax
call fcn.004d68a0
cmp eax, 1
jne 0x454104
test edx, edx
jne 0x454104
xor ecx, ecx
jmp 0x454108
mov ecx, dword [esp + 0x34]
mov al, byte [ecx*2 + 0x4ee455]
mov byte [edi - 1], al
mov al, byte [ecx*2 + str.thstndrd]
sub edi, 2
mov byte [edi], al
mov ecx, dword [esp + 0x44]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x48], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edx
push edx
push ecx
push esi
push eax
dec edi
call fcn.004ae980
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov esi, edx
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
mov byte [edi], al
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], ebx
test esi, esi
ja 0x454142
jb 0x454175
test eax, eax
jne 0x454142
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x64]
sub eax, edx
sub eax, esi
inc eax
add eax, edi
jmp 0x45418f
dec edi
dec eax
mov byte [edi], 0x30
test eax, eax
jg 0x45418a
mov al, byte [esp + 0xe]
test al, al
je 0x45419e
dec edi
mov byte [edi], al
cmp byte [esp + 0x1a], 0
je 0x4541c4
mov eax, dword [esp + 0x44]
mov al, byte [eax + 5]
test al, al
je 0x4541c4
movzx eax, al
add eax, 0x4f11a4
jmp 0x4541be
dec edi
inc eax
mov byte [edi], cl
mov cl, byte [eax]
test cl, cl
jne 0x4541ba
sub edx, edi
dec esi
add esi, edx
mov eax, dword [esp + 0x1c]
cmp byte [esp + 0x19], 0
jne 0x4541e5
mov edx, eax
sub edx, esi
test edx, edx
jle 0x4541e5
mov ecx, dword [esp + 0x30]
call fcn.00453cbd
test esi, esi
jle 0x4541f6
mov ecx, dword [esp + 0x30]
push esi
mov edx, edi
call fcn.0045495e
pop ecx
cmp byte [esp + 0x19], 0
je 0x454212
mov eax, dword [esp + 0x1c]
sub eax, esi
test eax, eax
jle 0x454212
mov ecx, dword [esp + 0x30]
mov edx, eax
call fcn.00453cbd
push dword [esp + 0x54]
call fcn.004538a3
mov edx, dword [esp + 0x24]
inc edx
pop ecx
movsx eax, byte [edx]
test eax, eax
je case.default.0x453f99
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
jmp 0x453d66
mov esi, dword [esp + 0x10]
add esi, 8
test edx, edx
movsd xmm1, qword [esi - 8]
cmovs edx, dword [esp + 0x68]
xorps xmm2, xmm2
comisd xmm2, xmm1
mov dword [esp + 0x10], esi
movsd qword [esp + 0x48], xmm1
mov dword [esp + 0x2c], edx
jbe 0x454278
xorpd xmm1, xmmword [0x4ff070]
movsd qword [esp + 0x48], xmm1
mov byte [esp + 0xe], 0x2d
jmp 0x454296
cmp byte [esp + 0x2b], 0
je 0x454286
mov byte [esp + 0xe], 0x2b
jmp 0x454296
cmp byte [esp + 0x17], 0
sete al
dec al
and al, 0x20
mov byte [esp + 0xe], al
cmp cl, 4
jne 0x4542a4
test edx, edx
jle 0x4542a4
dec edx
mov dword [esp + 0x2c], edx
movsd xmm3, qword [0x4fef28]
mov eax, edx
test edx, edx
jle 0x4542bf
mulsd xmm3, qword [0x4fef20]
dec eax
test eax, eax
jg 0x4542b2
cmp cl, 2
jne 0x4542d6
movapd xmm0, xmm3
addsd xmm0, xmm1
movapd xmm1, xmm0
movsd qword [esp + 0x48], xmm1
xor ecx, ecx
movapd xmm0, xmm1
mov dword [esp + 0x38], ecx
call fcn.0045542f
test eax, eax
je 0x4542f6
push 3
mov edi, 0x4fa020
pop esi
jmp 0x4541c9
comisd xmm1, xmm2
jbe 0x454443
comisd xmm1, xmmword [0x4ff028]
movsd xmm5, qword [0x4fef30]
mov eax, dword [esp + 0x58]
movapd xmm2, xmm5
jb 0x454342
mov esi, dword [esp + 0x60]
cmp ecx, eax
jg 0x45433e
mulsd xmm2, qword [0x4ff028]
add ecx, esi
movapd xmm0, xmm2
mulsd xmm0, qword [0x4ff028]
comisd xmm1, xmm0
jae 0x45431e
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, qword [0x4ff010]
comisd xmm1, xmm0
jb 0x454371
cmp ecx, eax
jg 0x45436d
movapd xmm2, xmm0
mulsd xmm0, qword [0x4ff010]
add ecx, 0x40
comisd xmm1, xmm0
jae 0x454354
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, qword [0x4fefd8]
comisd xmm1, xmm0
jb 0x4543a0
cmp ecx, eax
jg 0x45439c
movapd xmm2, xmm0
mulsd xmm0, qword [0x4fefd8]
add ecx, 8
comisd xmm1, xmm0
jae 0x454383
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x4543c5
cmp ecx, eax
jg 0x4543c1
movapd xmm2, xmm0
mulsd xmm0, xmm4
inc ecx
comisd xmm1, xmm0
jae 0x4543ae
mov dword [esp + 0x38], ecx
divsd xmm1, xmm2
movsd xmm0, qword [0x4fef18]
comisd xmm0, xmm1
movsd qword [esp + 0x48], xmm1
jbe 0x4543f8
mulsd xmm1, qword [0x4fefd8]
sub ecx, 8
comisd xmm0, xmm1
ja 0x4543dd
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x48], xmm1
comisd xmm5, xmm1
jbe 0x454413
mulsd xmm1, xmm4
dec ecx
comisd xmm5, xmm1
ja 0x4543fe
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x48], xmm1
cmp ecx, eax
jle 0x454443
mov al, byte [esp + 0xe]
cmp al, 0x2d
jne 0x454426
mov edi, str._Inf
jmp 0x454435
mov edi, str.Inf
mov ecx, 0x4fa024
cmp al, 0x2b
cmovne edi, ecx
mov ecx, edi
call fcn.0045545d
mov esi, eax
jmp 0x4541c9
mov al, byte [esp + 0xf]
lea esi, [esp + 0x78]
cmp al, 2
je 0x454472
addsd xmm1, xmm3
comisd xmm1, xmm4
movsd qword [esp + 0x48], xmm1
jb 0x454472
mulsd xmm1, qword [0x4fef20]
inc ecx
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x48], xmm1
cmp al, 4
jne 0x45449d
cmp byte [esp + 0x1a], 0
sete byte [esp + 0x1b]
cmp ecx, 0xfffffffc
jl 0x454496
cmp ecx, edx
jg 0x454496
sub edx, ecx
mov dword [esp + 0x2c], edx
mov byte [esp + 0xf], 2
jmp 0x4544ab
mov byte [esp + 0xf], 3
jmp 0x4544a9
mov ah, byte [esp + 0x18]
mov byte [esp + 0x1b], ah
cmp al, 3
jne 0x4544ab
xor ecx, ecx
lea eax, [ecx + edx]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
cmp eax, 0x37
jle 0x4544db
add eax, 0xf
push eax
call fcn.004536a2
pop ecx
mov dword [esp + 0x54], eax
mov esi, eax
test eax, eax
je 0x4548eb
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
movzx eax, byte [esp + 0x18]
imul eax, eax, 0xa
add eax, 0x10
mov dword [esp + 0x34], eax
mov ah, byte [esp + 0xe]
test edx, edx
setg al
or al, byte [esp + 0x18]
mov edi, esi
or al, byte [esp + 0x1a]
mov byte [esp + 0x17], al
test ah, ah
je 0x454508
mov byte [esi], ah
inc esi
test ecx, ecx
jns 0x454512
mov byte [esi], 0x30
inc esi
jmp 0x454557
movsd xmm1, qword [esp + 0x48]
mov edx, dword [esp + 0x34]
test edx, edx
jg 0x454524
mov al, 0x30
jmp 0x45453f
cvttsd2si eax, xmm1
dec edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
add al, 0x30
subsd xmm1, xmm0
mulsd xmm1, qword [0x4fef58]
mov byte [esi], al
inc esi
dec ecx
jns 0x45451c
mov al, byte [esp + 0x17]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
movsd qword [esp + 0x48], xmm1
test al, al
je 0x45455f
mov byte [esi], 0x2e
inc esi
inc ecx
jns 0x454580
neg ecx
push ecx
push 0x30
push esi
mov dword [esp + 0x30], ecx
call fcn.004acf20
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
add esp, 0xc
add esi, eax
sub edx, eax
test edx, edx
jle 0x4545bf
mov ecx, dword [esp + 0x34]
dec edx
test ecx, ecx
jg 0x454591
mov al, 0x30
jmp 0x4545b8
movsd xmm1, qword [esp + 0x48]
cvttsd2si eax, xmm1
dec ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
add al, 0x30
subsd xmm1, xmm0
mulsd xmm1, qword [0x4fef58]
movsd qword [esp + 0x48], xmm1
mov byte [esi], al
inc esi
test edx, edx
jg 0x454588
cmp byte [esp + 0x1b], 0
je 0x4545f3
cmp byte [esp + 0x17], 0
je 0x4545f3
jmp 0x4545d4
mov esi, eax
mov byte [esi], 0
lea eax, [esi - 1]
cmp byte [eax], 0x30
je 0x4545cf
cmp byte [esi - 1], 0x2e
jne 0x4545f3
cmp byte [esp + 0x18], 0
je 0x4545ef
mov byte [esi], 0x30
inc esi
jmp 0x4545f3
dec esi
mov byte [esi], 0
cmp byte [esp + 0xf], 3
jne 0x45464b
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
movzx eax, byte [eax + 4]
mov al, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], al
test edx, edx
jns 0x45461d
mov byte [esi + 1], 0x2d
add esi, 2
neg edx
jmp 0x454624
mov byte [esi + 1], 0x2b
add esi, 2
mov ecx, dword [esp + 0x60]
cmp edx, ecx
jl 0x454636
mov eax, edx
cdq
idiv ecx
add al, 0x30
mov byte [esi], al
inc esi
mov eax, edx
cdq
push 0xa
pop ecx
idiv ecx
add al, 0x30
add dl, 0x30
mov byte [esi], al
mov byte [esi + 1], dl
add esi, 2
mov al, byte [esp + 0x2a]
mov byte [esi], 0
sub esi, edi
test al, al
je 0x4541c9
cmp byte [esp + 0x19], 0
jne 0x4541e5
mov eax, dword [esp + 0x1c]
cmp esi, eax
jge 0x4541d4
mov ecx, eax
sub ecx, esi
mov edx, eax
cmp eax, ecx
jl 0x45468c
mov esi, edi
sub esi, ecx
mov al, byte [esi + edx]
mov byte [edx + edi], al
dec edx
cmp edx, ecx
jge 0x454681
xor eax, eax
cmp byte [esp + 0xe], al
setne al
test ecx, ecx
je 0x4546a7
push ecx
add eax, edi
push 0x30
push eax
call fcn.004acf20
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov esi, eax
jmp 0x4541cd
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov ecx, dword [esi]
mov eax, dword [eax + 0xc]
add esi, 4
mov dword [esp + 0x10], esi
mov dword [ecx], eax
xor eax, eax
mov dword [esp + 0x1c], eax
xor esi, esi
jmp 0x4541cd
xor esi, esi
mov byte [esp + 0x78], 0x25
lea edi, [esp + 0x78]
inc esi
jmp 0x4541c9
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov ecx, dword [esi - 4]
mov byte [esp + 0x78], cl
test edx, edx
js 0x45471e
cmp edx, 1
jle 0x45471a
lea eax, [edx - 1]
push eax
push ecx
lea eax, [esp + 0x81]
push eax
call fcn.004acf20
mov edx, dword [esp + 0x38]
add esp, 0xc
mov esi, edx
jmp 0x454721
xor esi, esi
inc esi
lea edi, [esp + 0x78]
jmp 0x4541c9
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov edi, dword [esi - 4]
test edi, edi
jne 0x454743
mov edi, 0x4ea428
jmp 0x454751
mov eax, dword [esp + 0x54]
cmp cl, 7
cmove eax, edi
mov dword [esp + 0x54], eax
test edx, edx
js 0x454435
xor esi, esi
test edx, edx
jle 0x4541c9
cmp byte [esi + edi], 0
je 0x4541c9
inc esi
cmp esi, edx
jl 0x454763
jmp 0x4541c9
push 0x27
pop eax
cmp cl, 0xf
push 0x22
pop esi
cmove eax, esi
mov esi, dword [esp + 0x10]
add esi, 4
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esi - 4]
test eax, eax
sete cl
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x4547be
cmp byte [esp + 0xf], 0xb
mov eax, str.NULL
mov esi, str._NULL_
cmovne eax, esi
mov dword [esp + 0x44], eax
xor esi, esi
xor edi, edi
mov dword [esp + 0x34], esi
test edx, edx
je 0x4547e8
mov ecx, dword [esp + 0x44]
mov al, byte [esi + ecx]
test al, al
je 0x4547e0
cmp al, byte [esp + 0x24]
jne 0x4547dc
inc edi
inc esi
dec edx
jne 0x4547ce
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x34], esi
test ecx, ecx
jne 0x4547f8
cmp byte [esp + 0xf], 0xb
jne 0x4547f8
xor edx, edx
inc edx
jmp 0x4547fa
xor edx, edx
lea eax, [edx*2 + 1]
add eax, esi
add eax, edi
mov dword [esp + 0x38], edx
cmp eax, 0x46
jle 0x454829
push eax
call fcn.004536a2
pop ecx
mov dword [esp + 0x54], eax
mov edi, eax
test eax, eax
je 0x4548eb
mov edx, dword [esp + 0x38]
jmp 0x45482d
lea edi, [esp + 0x78]
xor esi, esi
test edx, edx
je 0x45483a
mov eax, dword [esp + 0x24]
mov byte [edi], al
inc esi
xor eax, eax
cmp dword [esp + 0x34], eax
jle 0x454864
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
mov cl, byte [eax + ecx]
mov byte [esi + edi], cl
inc esi
cmp cl, byte [esp + 0x24]
jne 0x45485b
mov byte [esi + edi], cl
inc esi
inc eax
cmp eax, edx
jl 0x454846
mov edx, dword [esp + 0x38]
test edx, edx
je 0x454870
mov eax, dword [esp + 0x24]
mov byte [esi + edi], al
inc esi
mov byte [esi + edi], 0
jmp 0x4541c9
mov esi, dword [esp + 0x10]
add esi, 4
mov dword [esp + 0x10], esi
mov edx, dword [esi - 4]
test edx, edx
je 0x4546c8
push dword [edx + 4]
mov edx, dword [edx]
mov ecx, dword [esp + 0x34]
call fcn.0045495e
pop ecx
jmp 0x4546c8
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
add esi, 8
mov dword [esp + 0x10], esi
mov esi, dword [esi - 4]
imul esi, esi, 0x48
mov dword [esp + 0x48], eax
mov edx, dword [esi + eax + 0xc]
test edx, edx
je 0x4548e3
mov ecx, dword [esp + 0x30]
push 0xffffffffffffffff
call fcn.0045495e
pop ecx
mov ecx, dword [esp + 0x30]
push 1
mov edx, 0x4f5754
call fcn.0045495e
mov eax, dword [esp + 0x4c]
pop ecx
mov edx, dword [esi + eax + 0x10]
push 0xffffffffffffffff
jmp 0x454894
mov eax, dword [esp + 0x30]
mov byte [eax + 0x18], 1
jmp case.default.0x453f99
mov ecx, dword [esp + 0x30]
push 1
mov edx, 0x4f9ff0
call fcn.0045495e
pop ecx
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a2964
mov esp, ebp
pop ebp
ret