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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [0x5f4748]
xor eax, esp
mov dword [esp + 0xc0], eax
and dword [esp + 0x40], 0
mov eax, edx
mov edx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], edx
test eax, eax
je 0x4546e0
and al, 2
mov byte [esp + 0x12], al
je 0x4546d9
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x4c], eax
and byte [esp + 0x64], 1
jmp 0x4546ea
mov byte [esp + 0x64], 0
mov byte [esp + 0x12], 0
movsx eax, byte [esi]
test eax, eax
je case.default.0x454947
mov dword [esp + 0x78], 0x5c7840
mov dword [esp + 0x68], 6
mov dword [esp + 0x7c], SysStringLen
mov dword [esp + 0x74], 0x15e
mov dword [esp + 0x6c], 0x64
cmp eax, 0x25
je 0x45475c
mov edi, dword [esp + 0x34]
mov dword [esp + 0x30], esi
inc edi
movsx esi, byte [edi]
cmp esi, 0x25
je 0x454737
test esi, esi
jne 0x45472a
mov eax, edi
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x30]
sub eax, edi
push eax
mov edx, edi
call fcn.004554f5
pop ecx
test esi, esi
je case.default.0x454947
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
inc esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x455368
xor al, al
mov byte [esp + 0x27], al
xor eax, eax
mov byte [esp + 0x1e], al
mov byte [esp + 0x1d], al
mov byte [esp + 0x1c], al
mov byte [esp + 0x2f], al
mov byte [esp + 0x10], al
mov eax, ecx
sub eax, 0x20
je 0x4547c3
dec eax
je 0x4547bc
dec eax
dec eax
je 0x4547b5
sub eax, 8
je 0x4547ae
dec eax
dec eax
je 0x4547a7
sub eax, 3
jne 0x4547d0
mov byte [esp + 0x27], 1
jmp 0x4547c8
mov byte [esp + 0x10], 1
jmp 0x4547c8
mov byte [esp + 0x2f], 1
jmp 0x4547c8
mov byte [esp + 0x1d], 1
jmp 0x4547c8
mov byte [esp + 0x1e], 1
jmp 0x4547c8
mov byte [esp + 0x1c], 1
inc esi
movsx ecx, byte [esi]
test ecx, ecx
jne 0x454784
xor eax, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], eax
cmp ecx, 0x2a
jne 0x454816
cmp byte [esp + 0x12], al
je 0x4547f4
mov ecx, dword [esp + 0x4c]
call fcn.0045461f
mov edx, dword [esp + 0x14]
jmp 0x4547fd
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
test eax, eax
jns 0x454810
neg eax
mov byte [esp + 0x10], 1
mov dword [esp + 0x18], eax
inc esi
movsx ecx, byte [esi]
jmp 0x454835
cmp ecx, 0x30
jl 0x454839
cmp ecx, 0x39
jg 0x454831
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x45481b
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], esi
cmp ecx, 0x2e
jne 0x4548a3
xor eax, eax
inc esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
cmp ecx, 0x2a
jne 0x45489c
cmp byte [esp + 0x12], al
je 0x454862
mov ecx, dword [esp + 0x4c]
call fcn.0045461f
jmp 0x45486b
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], eax
test eax, eax
jns 0x454879
neg eax
mov dword [esp + 0x20], eax
inc esi
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
jmp 0x4548a8
cmp ecx, 0x39
jg 0x4548a8
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x454883
jmp 0x4548a8
or dword [esp + 0x20], 0xffffffff
cmp ecx, 0x6c
jne 0x4548d6
inc esi
mov al, 1
mov byte [esp + 0x1f], al
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
cmp ecx, 0x6c
jne 0x4548ce
inc esi
mov byte [esp + 0x11], al
mov dword [esp + 0x34], esi
movsx ecx, byte [esi]
jmp 0x4548e0
xor al, al
mov byte [esp + 0x11], al
jmp 0x4548e0
xor al, al
mov byte [esp + 0x11], al
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x78]
xor esi, esi
mov dword [esp + 0x48], eax
mov edx, eax
mov byte [esp + 0x13], 0
movsx eax, byte [edx]
cmp ecx, eax
je 0x45490f
add edx, dword [esp + 0x68]
inc esi
cmp edx, 0x5c78ca
jl 0x4548f1
mov cl, byte [esp + 0x13]
mov edx, dword [esp + 0x48]
jmp 0x454934
imul edx, esi, 6
add edx, 0x5c7840
cmp byte [esp + 0x64], 0
mov dword [esp + 0x48], edx
jne 0x45492d
test byte [edx + 2], 2
jne case.default.0x454947
mov cl, byte [edx + 3]
mov byte [esp + 0x13], cl
xor esi, esi
movzx eax, cl
dec eax
mov dword [esp + 0x5c], esi
cmp eax, 0xf
ja case.default.0x454947
jmp dword [eax*4 + 0x455390]
xor al, al
mov cl, 1
jmp 0x45495c
mov al, byte [esp + 0x11]
mov cl, byte [esp + 0x1f]
test byte [edx + 2], 1
je 0x4549ed
cmp byte [esp + 0x12], 0
je 0x454978
mov ecx, dword [esp + 0x4c]
call fcn.0045461f
jmp 0x4549a0
test al, al
je 0x45498f
mov ecx, dword [esp + 0x14]
add ecx, 8
mov dword [esp + 0x14], ecx
mov eax, dword [ecx - 8]
mov esi, dword [ecx - 4]
jmp 0x4549a2
test cl, cl
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
mov eax, dword [ecx - 4]
cdq
mov esi, edx
test esi, esi
jg 0x4549cf
jl 0x4549ac
test eax, eax
jae 0x4549cf
test eax, eax
jne 0x4549c0
mov ecx, dword [esp + 0x7c]
cmp esi, ecx
jne 0x4549c0
and dword [esp + 0x38], eax
mov esi, ecx
jmp 0x4549cb
neg eax
mov dword [esp + 0x38], eax
adc esi, 0
neg esi
mov cl, 0x2d
jmp 0x454a2c
cmp byte [esp + 0x2f], 0
mov dword [esp + 0x38], eax
je 0x4549de
mov cl, 0x2b
jmp 0x454a2c
cmp byte [esp + 0x1c], 0
sete cl
dec cl
and cl, 0x20
jmp 0x454a2c
cmp byte [esp + 0x12], 0
je 0x454a01
mov ecx, dword [esp + 0x4c]
call fcn.0045461f
mov esi, edx
jmp 0x454a26
test al, al
je 0x454a14
mov ecx, dword [esp + 0x14]
add ecx, 8
mov eax, dword [ecx - 8]
mov esi, dword [ecx - 4]
jmp 0x454a22
test cl, cl
mov ecx, dword [esp + 0x14]
add ecx, 4
xor esi, esi
mov eax, dword [ecx - 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], eax
xor cl, cl
mov edx, dword [esp + 0x38]
mov eax, edx
or eax, esi
mov byte [esp + 0x11], cl
jne 0x454a3e
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x27]
test al, al
je 0x454a62
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x18]
setne al
sub ecx, eax
mov eax, dword [esp + 0x20]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x20], eax
jmp 0x454a66
mov eax, dword [esp + 0x20]
cmp eax, 0x3c
jge 0x454a7f
push 0x46
pop edi
lea eax, [esp + 0x80]
mov dword [esp + 0x60], edi
mov dword [esp + 0x70], eax
jmp 0x454aa3
lea edi, [eax + 0xa]
push edi
mov dword [esp + 0x64], edi
call fcn.00453fc7
pop ecx
mov ecx, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x5c], ecx
test ecx, ecx
je 0x45535a
mov edx, dword [esp + 0x38]
dec edi
add edi, eax
cmp byte [esp + 0x13], 0x10
jne 0x454af9
push 0
push 0xa
pop eax
push eax
push esi
push edx
call fcn.0055d130
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], ebx
cmp ecx, 4
jge 0x454adb
push 0
push 0xa
push edx
push eax
call fcn.0058bbd0
cmp eax, 1
jne 0x454adf
test edx, edx
jne 0x454adf
xor ecx, ecx
jmp 0x454ae3
mov ecx, dword [esp + 0x30]
mov al, byte [ecx*2 + 0x5c7105]
mov byte [edi - 1], al
sub edi, 2
mov al, byte [ecx*2 + str.thstndrd]
mov byte [edi], al
mov ecx, dword [esp + 0x48]
movzx eax, byte [ecx + 4]
add eax, 0x5c9eb0
mov dword [esp + 0x50], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
push edx
push ecx
push esi
push eax
dec edi
call fcn.0055d130
mov dword [esp + 0x38], eax
mov esi, edx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], ebx
mov al, byte [eax + ecx]
mov ecx, dword [esp + 0x30]
mov byte [edi], al
mov eax, dword [esp + 0x38]
test esi, esi
ja 0x454b1d
jb 0x454b50
test eax, eax
jne 0x454b1d
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x70]
sub eax, edx
mov esi, dword [esp + 0x60]
sub eax, esi
inc eax
add eax, edi
jmp 0x454b6a
dec edi
dec eax
mov byte [edi], 0x30
test eax, eax
jg 0x454b65
mov al, byte [esp + 0x11]
test al, al
je 0x454b79
dec edi
mov byte [edi], al
cmp byte [esp + 0x1d], 0
je 0x454b9f
mov eax, dword [esp + 0x48]
mov al, byte [eax + 5]
test al, al
je 0x454b9f
movzx eax, al
add eax, 0x5c9d80
jmp 0x454b99
dec edi
inc eax
mov byte [edi], cl
mov cl, byte [eax]
test cl, cl
jne 0x454b95
sub edx, edi
dec esi
add esi, edx
jmp 0x4552e7
cmp byte [esp + 0x12], 0
je 0x454bbf
mov ecx, dword [esp + 0x4c]
call fcn.00454641
movapd xmm1, xmm0
jmp 0x454bcf
mov ecx, dword [esp + 0x14]
add ecx, 8
mov dword [esp + 0x14], ecx
movsd xmm1, qword [ecx - 8]
mov edx, dword [esp + 0x20]
xorps xmm2, xmm2
test edx, edx
movsd qword [esp + 0x50], xmm1
cmovs edx, dword [esp + 0x68]
comisd xmm2, xmm1
mov dword [esp + 0x20], edx
jbe 0x454c02
xorpd xmm1, xmmword [0x5d1b20]
movsd qword [esp + 0x50], xmm1
mov byte [esp + 0x11], 0x2d
jmp 0x454c20
cmp byte [esp + 0x2f], 0
je 0x454c10
mov byte [esp + 0x11], 0x2b
jmp 0x454c20
cmp byte [esp + 0x1c], 0
sete al
dec al
and al, 0x20
mov byte [esp + 0x11], al
mov cl, byte [esp + 0x13]
cmp cl, 4
jne 0x454c32
test edx, edx
jle 0x454c32
dec edx
mov dword [esp + 0x20], edx
movsd xmm3, qword [0x5d19b0]
mov eax, edx
test edx, edx
jle 0x454c4d
mulsd xmm3, qword [0x5d19a8]
dec eax
test eax, eax
jg 0x454c40
cmp cl, 2
jne 0x454c64
movapd xmm0, xmm3
addsd xmm0, xmm1
movapd xmm1, xmm0
movsd qword [esp + 0x50], xmm1
xor ecx, ecx
movapd xmm0, xmm1
mov dword [esp + 0x38], ecx
call fcn.0045600a
test eax, eax
je 0x454c84
push 3
mov edi, 0x5cbbf0
pop esi
jmp 0x4552e7
comisd xmm1, xmm2
jbe 0x454dd1
movsd xmm4, qword [0x5d1aa8]
comisd xmm1, xmm4
mov eax, dword [esp + 0x74]
movsd xmm5, qword [0x5d19b8]
movapd xmm2, xmm5
jb 0x454ccc
mov esi, dword [esp + 0x6c]
cmp ecx, eax
jg 0x454cc8
mulsd xmm2, xmm4
add ecx, esi
movapd xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x454cb0
mov dword [esp + 0x38], ecx
movsd xmm4, qword [0x5d1a98]
movapd xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x454cfb
cmp ecx, eax
jg 0x454cf7
movapd xmm2, xmm0
add ecx, 0x40
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x454ce2
mov dword [esp + 0x38], ecx
movsd xmm6, qword [0x5d1a50]
movapd xmm0, xmm2
mulsd xmm0, xmm6
comisd xmm1, xmm0
jb 0x454d2a
cmp ecx, eax
jg 0x454d26
movapd xmm2, xmm0
add ecx, 8
mulsd xmm0, xmm6
comisd xmm1, xmm0
jae 0x454d11
mov dword [esp + 0x38], ecx
movsd xmm4, qword [0x5d19d8]
movapd xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x454d57
cmp ecx, eax
jg 0x454d53
movapd xmm2, xmm0
inc ecx
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x454d40
mov dword [esp + 0x38], ecx
divsd xmm1, xmm2
movsd xmm0, qword [0x5d1998]
comisd xmm0, xmm1
movsd qword [esp + 0x50], xmm1
jbe 0x454d86
mulsd xmm1, xmm6
sub ecx, 8
comisd xmm0, xmm1
ja 0x454d6f
movsd qword [esp + 0x50], xmm1
mov dword [esp + 0x38], ecx
comisd xmm5, xmm1
jbe 0x454da1
mulsd xmm1, xmm4
dec ecx
comisd xmm5, xmm1
ja 0x454d8c
movsd qword [esp + 0x50], xmm1
mov dword [esp + 0x38], ecx
cmp ecx, eax
jle 0x454dd9
mov al, byte [esp + 0x11]
cmp al, 0x2d
jne 0x454db4
mov edi, str._Inf
jmp 0x454dc3
cmp al, 0x2b
mov edi, str.Inf
mov ecx, 0x5cbc04
cmovne edi, ecx
mov ecx, edi
call fcn.0045603a
mov esi, eax
jmp 0x4552e7
movsd xmm4, qword [0x5d19d8]
mov al, byte [esp + 0x13]
lea esi, [esp + 0x80]
cmp al, 2
je 0x454e0b
addsd xmm3, xmm1
comisd xmm3, xmm4
movsd qword [esp + 0x50], xmm3
jb 0x454e0b
mulsd xmm3, qword [0x5d19a8]
inc ecx
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x50], xmm3
cmp al, 4
jne 0x454e36
cmp byte [esp + 0x1d], 0
sete byte [esp + 0x1f]
cmp ecx, 0xfffffffc
jl 0x454e2f
cmp ecx, edx
jg 0x454e2f
sub edx, ecx
mov byte [esp + 0x13], 2
mov dword [esp + 0x20], edx
jmp 0x454e44
mov byte [esp + 0x13], 3
jmp 0x454e42
mov ah, byte [esp + 0x1e]
mov byte [esp + 0x1f], ah
cmp al, 3
jne 0x454e44
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x28], ecx
test ecx, ecx
cmovg eax, ecx
add eax, edx
add eax, dword [esp + 0x18]
cmp eax, 0x37
jle 0x454e7a
add eax, 0xf
push eax
call fcn.00453fc7
mov dword [esp + 0x60], eax
mov esi, eax
pop ecx
test eax, eax
je 0x45535a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
movzx eax, byte [esp + 0x1e]
mov edi, esi
imul eax, eax, 0xa
mov dword [esp + 0x30], edi
add eax, 0x10
test edx, edx
mov dword [esp + 0x60], eax
mov ah, byte [esp + 0x11]
setg al
or al, byte [esp + 0x1e]
or al, byte [esp + 0x1d]
mov byte [esp + 0x1c], al
test ah, ah
je 0x454eab
mov byte [esi], ah
inc esi
test ecx, ecx
jns 0x454eb5
mov byte [esi], 0x30
inc esi
jmp 0x454ee0
mov edi, dword [esp + 0x28]
lea edx, [esp + 0x60]
lea ecx, [esp + 0x50]
call fcn.004545e5
mov byte [esi], al
inc esi
dec edi
jns 0x454eb9
mov al, byte [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
test al, al
je 0x454ee8
mov byte [esi], 0x2e
inc esi
inc ecx
jns 0x454f0d
neg ecx
push ecx
push 0x30
push esi
mov dword [esp + 0x34], ecx
call fcn.005533c0
mov eax, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x20]
add esi, eax
sub edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jle 0x454f2e
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x60]
dec edi
lea ecx, [esp + 0x50]
call fcn.004545e5
mov byte [esi], al
inc esi
test edi, edi
jg 0x454f15
mov edi, dword [esp + 0x30]
cmp byte [esp + 0x1f], 0
je 0x454f65
cmp byte [esp + 0x1c], 0
je 0x454f65
jmp 0x454f43
mov esi, eax
mov byte [esi], 0
lea eax, [esi - 1]
cmp byte [eax], 0x30
je 0x454f3e
lea eax, [esi - 1]
cmp byte [eax], 0x2e
jne 0x454f65
cmp byte [esp + 0x1e], 0
je 0x454f60
mov byte [esi], 0x30
inc esi
jmp 0x454f65
mov esi, eax
mov byte [esi], 0
cmp byte [esp + 0x13], 3
jne 0x454fbd
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
movzx eax, byte [eax + 4]
mov al, byte [eax + 0x5c9eb0]
mov byte [esi], al
test edx, edx
jns 0x454f8f
mov byte [esi + 1], 0x2d
add esi, 2
neg edx
jmp 0x454f96
mov byte [esi + 1], 0x2b
add esi, 2
mov ecx, dword [esp + 0x6c]
cmp edx, ecx
jl 0x454fa8
mov eax, edx
cdq
idiv ecx
add al, 0x30
mov byte [esi], al
inc esi
mov eax, edx
push 0xa
cdq
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 + 0x27]
mov byte [esi], 0
sub esi, edi
test al, al
je 0x4552e7
mov al, byte [esp + 0x10]
mov edx, dword [esp + 0x18]
test al, al
jne 0x4552ef
cmp esi, edx
jge 0x4552ef
mov ecx, edx
sub ecx, esi
mov esi, edx
cmp esi, ecx
jl 0x455003
mov esi, edi
sub esi, ecx
mov al, byte [esi + edx]
mov byte [edx + edi], al
dec edx
cmp edx, ecx
jge 0x454ff4
mov esi, dword [esp + 0x18]
xor eax, eax
cmp byte [esp + 0x11], al
setne al
test ecx, ecx
je 0x4552e7
push ecx
add eax, edi
push 0x30
push eax
call fcn.005533c0
add esp, 0xc
jmp 0x4552e7
cmp byte [esp + 0x12], 0
jne 0x455045
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
add ecx, 4
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx - 4]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
and dword [esp + 0x18], esi
jmp 0x4552e5
xor esi, esi
mov byte [esp + 0x80], 0x25
lea edi, [esp + 0x80]
inc esi
jmp 0x4552e7
cmp byte [esp + 0x12], 0
je 0x455082
mov ecx, dword [esp + 0x4c]
call fcn.00454662
test eax, eax
je 0x45507e
movsx ecx, byte [eax]
jmp 0x455090
xor ecx, ecx
jmp 0x455090
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx - 4]
mov esi, dword [esp + 0x20]
mov byte [esp + 0x80], cl
test esi, esi
js 0x4550bb
cmp esi, 1
jle 0x4550be
lea eax, [esi - 1]
push eax
push ecx
lea eax, [esp + 0x89]
push eax
call fcn.005533c0
add esp, 0xc
jmp 0x4550be
xor esi, esi
inc esi
lea edi, [esp + 0x80]
jmp 0x4552e7
mov al, byte [esp + 0x12]
test al, al
je 0x4550e3
mov ecx, dword [esp + 0x4c]
call fcn.00454662
mov edi, eax
mov al, byte [esp + 0x12]
jmp 0x4550f1
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
mov edi, dword [ecx - 4]
test edi, edi
jne 0x4550fc
mov edi, 0x5cb9dc
jmp 0x45510c
cmp byte [esp + 0x13], 7
jne 0x45510c
test al, al
cmove esi, edi
mov dword [esp + 0x5c], esi
mov eax, dword [esp + 0x20]
test eax, eax
js 0x454dc3
xor esi, esi
test eax, eax
jle 0x4552e7
cmp byte [esi + edi], 0
je 0x4552e7
inc esi
cmp esi, eax
jl 0x455122
jmp 0x4552e7
push 0x27
pop edx
push 0x22
cmp cl, 0xf
pop eax
cmove edx, eax
cmp byte [esp + 0x12], 0
mov dword [esp + 0x28], edx
je 0x455162
mov ecx, dword [esp + 0x4c]
call fcn.00454662
mov edx, dword [esp + 0x28]
mov ecx, eax
mov dword [esp + 0x30], eax
jmp 0x455174
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx - 4]
mov dword [esp + 0x30], ecx
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x50], eax
test eax, eax
je 0x455199
cmp byte [esp + 0x13], 0xb
mov ecx, str.NULL
mov esi, str._NULL_
cmovne ecx, esi
mov dword [esp + 0x30], ecx
mov edi, dword [esp + 0x20]
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x48], ecx
test edi, edi
je 0x4551cf
mov eax, dword [esp + 0x30]
mov cl, byte [ecx + eax]
test cl, cl
je 0x4551c7
cmp cl, dl
jne 0x4551b9
inc esi
mov ecx, dword [esp + 0x48]
inc ecx
mov dword [esp + 0x48], ecx
dec edi
jne 0x4551ad
jmp 0x4551cb
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4551df
cmp byte [esp + 0x13], 0xb
jne 0x4551df
xor edx, edx
inc edx
jmp 0x4551e1
xor edx, edx
lea eax, [edx*2 + 1]
mov dword [esp + 0x38], edx
add eax, ecx
add eax, esi
cmp eax, 0x46
jle 0x455214
push eax
call fcn.00453fc7
mov dword [esp + 0x60], eax
mov edi, eax
pop ecx
test eax, eax
je 0x45535a
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
jmp 0x45521b
lea edi, [esp + 0x80]
xor esi, esi
test edx, edx
je 0x455228
mov eax, dword [esp + 0x28]
inc esi
mov byte [edi], al
xor eax, eax
test ecx, ecx
jle 0x45524e
mov edx, dword [esp + 0x30]
mov cl, byte [eax + edx]
mov byte [esi + edi], cl
inc esi
cmp cl, byte [esp + 0x28]
jne 0x455243
mov byte [esi + edi], cl
inc esi
inc eax
cmp eax, dword [esp + 0x48]
jl 0x455232
mov edx, dword [esp + 0x38]
test edx, edx
je 0x45525a
mov eax, dword [esp + 0x28]
mov byte [esi + edi], al
inc esi
mov byte [esi + edi], 0
jmp 0x4552e7
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x14], ecx
mov edx, dword [ecx - 4]
test edx, edx
je 0x455045
cmp dword [edx + 4], esi
je 0x455045
push dword [edx + 4]
mov eax, dword [esp + 0x48]
mov ecx, eax
mov edx, dword [edx]
call fcn.004554f5
pop ecx
jmp 0x455045
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
add ecx, 8
mov dword [esp + 0x14], ecx
imul eax, dword [ecx - 4], 0x50
mov dword [esp + 0x50], eax
mov edx, dword [eax + esi + 0xc]
test edx, edx
je 0x4552d3
mov ecx, dword [esp + 0x44]
call fcn.00455530
mov ecx, dword [esp + 0x44]
mov edx, 0x5c6538
push 1
call fcn.004554f5
mov eax, dword [esp + 0x54]
pop ecx
mov edx, dword [eax + esi + 0x10]
mov ecx, dword [esp + 0x44]
call fcn.00455530
and dword [esp + 0x18], 0
xor esi, esi
mov edx, dword [esp + 0x18]
mov al, byte [esp + 0x10]
sub edx, esi
mov dword [esp + 0x18], edx
test edx, edx
jle 0x455306
test al, al
jne 0x455306
mov ecx, dword [esp + 0x44]
call fcn.00455496
push esi
mov esi, dword [esp + 0x48]
mov edx, edi
mov ecx, esi
call fcn.004554f5
mov eax, dword [esp + 0x1c]
pop ecx
test eax, eax
jle 0x45532e
mov cl, byte [esp + 0x10]
test cl, cl
je 0x45532e
mov edx, eax
mov ecx, esi
call fcn.00455496
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x45533d
push eax
call fcn.004541c2
pop ecx
mov esi, dword [esp + 0x34]
inc esi
mov dword [esp + 0x34], esi
movsx eax, byte [esi]
test eax, eax
je case.default.0x454947
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
jmp 0x45471d
mov eax, dword [esp + 0x44]
and dword [eax + 0x10], 0
mov byte [eax + 0x19], 1
jmp case.default.0x454947
mov ecx, dword [esp + 0x44]
mov edx, 0x5cbbec
push 1
call fcn.004554f5
pop ecx
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0054d1e7
mov esp, ebp
pop ebp
ret